I think you shoud first check the vm host, not the client.
Open vSphere and make sure the memory is not overprovisioned.
If you look at the default performance graphs for the client from vSphere, you can see if memory is being swapped in/out and whether there is any "memory ballooning" going on.
The other one to look out for is CPU ready time. http://www.sqlskills.com/blogs/jonathan/cpu-ready-time-in-vmware-and-how-to-interpret-its-real-meaning/
The client machines full number of assigned cores needs to be available before the host will process the clients request, even if you have MAXDOP = 1, you have 4 cores, all 4 need to be ready (thats my laymans understanding of it. It's sometimes recommended to decrease the assigned number of cores for your virtual box and you'll increase performance)
I use a performance monitoring product called Confio Ignite which gives full performance charts for the vm host and matches it with the client stats, it's much easier to find out if it's a VM or SQL problem. One of the key performance indicators is VM CPU ready time and the other is Signal Waits %, they really give you a good idea as to whether its the host or client.