Yes! With the new version 7.0 gdb, you can do exactly that!
The command would be "reverse-step", or "reverse-next".
You can get gdb-7.0 from ftp.gnu.org:/pub/gnu/gdb
If you run into the error: Target child does not support this command. then try adding "target record" at the beginning of execution, after starting run.
Edit: Since GDB 7.6 "target record" is deprecated, use "target record-full" instead.