Caveat emptor: This is shameless self-promotion, but I think it's pretty on topic.
You may want to have a peek at Rec Debugger. It's supposed to do what you're asking for - let you step backwards in .NET programs. It is in beta, however, and it throws NotImplementedExceptions all over the place. Also, it's not nearly as fast as I would want it to be. But I would very much appreciate bug-reports so that I can concentrate my efforts on the most easily encountered problems.
Again, I'm affiliated with the site I suggested. I stumbled upon this question when I was doing some google searches, and I have no intention of continuing to spam my site here. (But feel free to vote down if this is considered inappropriate)