I solved the problem using an inelegant solution. Here's what I did, your mileage may vary:
(1) Mounted the windows drive in linux VM (I just booted a VM from a SystemRescue disc image) and used GParted to shrink the Windows partition to the size I wanted (40GB down to 16GB)
(2) Created a new virtual HD the same size as the Windows partition (16GB) and used GParted to format/partition it. (I didn't do this, but it is ideal if the new blank partition is exactly the same size as the old one)
(3) Used the dd command in linux to copy the windows partition on the old VHD to the new partition on the new VHD, and also used dd to copy the MBR from the old VHD to the new. (Instructions found on the web -- google for "clone a windows drive with dd")
Ideally that would have been all, but since I wasn't smart enough to use the same size partitions, I had to boot into my original XP image, install the Windows Recovery console, and then use the fixboot and fixmbr commands to repair the new disk.
The upshot is, I now have a working XP image that is 11GB on the mac hard drive (Windows reports about 9.5GB in use). Also note that I keep my pagefile on a separate harddrive image that is used only for that and temp files. I would eliminate the page file before copying using dd. Also note, dd is pretty slow -- 16GB took about 30 minutes to copy.
If you attempt any of the above, make sure to backup your original first -- it is entirely at your own risk.