You do not say what OS is in your PC and on the VHD, also you don't say if your disks partitions are GPT or MBR, so I will try to make the info generic.
You can use grubfordos and a menu.lst like this:
NOTE: This only works on MBR partitioned HDD and Non UEFI Secure Boot, also VHD must be fixed size.
For UEFI Secure Boot you may use Windows Boot Manager directly.
Or you can make and partition your VHD the way you want and then use WinNTSetup
to install Win to this mounted VHD located directly in your USB device, and it will make all required Boot manager entries in both BCD files (the UEFI one and the standard one), to let you boot in UEFI and non UEFI PC's, but you need an active primary partition FAT32 on your USB in order to install Boot files to be able to boot in UEFI PC's. Partition where VHD is located most be NTFS.
I recommend better use an external HDD USB 2.0 (only Win8 and newer can boot from USB 3.0 natively). Booting from USB sticks is very slow that's why I suggest USB HDD.
Using WinNTSetup you can make a Compact install XPRESS8K on an expandable VHD of 10 to 15 GB and you end up with a 5.7 GB VHD file (Win10x64Pro without any other programs). NO page file and NO hiberfile, selected in tricks.
Another option if you want to use your USB stick is to use Rufus