It appears the problem was not VMWare per se, but the swappiness settings of the kernel.
It also appears that iotop attributes IO to threads even though it's the kernel (kswapd or bdflush) that's perform the IO.
These settings in /etc/sysctl.conf have solved the problem:
vm.swappiness = 0
vm.overcommit_memory = 1
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
vm.dirty_expire_centisecs = 1000
dev.rtc.max-user-freq = 1024
My conclusion is that VMWare threads were being targeted simply because they held a lot of memory.
The overall tuning including the above settings were obtained from here: fewt.com/2008/06/performance-tuning-vmware-server-on.html