Yes, it is possible and quite common to see negative setup and hold times specified in standard cell timing libraries (.lib).
There are internal delays along the clock path and data path within the cell, from the input pins to the internal latch.
Negative Setup: If the internal clock path delay is significantly longer than the internal data path delay plus the internal latch’s intrinsic setup time, the data pin (D) can actually change after the active clock edge at the clock pin (CK) and still be captured correctly.
