Yes, it is possible, and straightforward, now, with real hardware (ie. not just with a VM).
GDB-7.0 supports reverse debugging with commands like reverse-step and reverse-continue, on native linux x86 machines.
There is a tutorial here: http://www.sourceware.org/gdb/wiki/ProcessRecord/Tutorial