ESX server uses transparent page sharing per default. This means that you can't really count on what the VM thinks it has allocated of memory.
In the VI client, the 'host mem' is the amount of memory carved out for the VM by the ESX host. This is basically allocated when the VM asks for it. Now, if the memory is not active it will not necessarily be reclaimed by the ESX if there's no need to and the VM will not release it by itself. That's why 'guest mem %' is lower lower - as it onsly shows the % usage of the memory granted to the VM.
There's more info in this post:
http://communities.vmware.com/thread/62628