I know this post is a bit old, but I just ran in to the same issue when upgrading several RHEL 5.5 VMs to 5.6 running on ESXi 4.1. I got around the problem by adding the following options to the kernel boot paramaters.
Not ideal but it works for the time being.
Actually, I've tracked this problem down to a set of patches introduced in the Red Hat EL 5.6 kernel (-238.el5 and later) that was attemping to beef up the timekeeping aspect of EL5 i386 kernels. x86_64 kernel are unaffected. In my tests, setting clocksource= to anything didn't help anything because TSC always ended up getting chosen for handling IRQs which is the crux of the problem. However I did determine that setting divider=10 reduced dramatically the frequency of hitting the bug due to the fact that it reduces the number of timer interrupts by tenfold. My bug report and the subsequent patch appears to have been accepted by Red Hat for inclusion in a future errata. https://bugzilla.redhat.com/show_bug.cgi?id=692966