Both will work.
JoBeard's route means your setting the partitions in place before installing Linux. e.g. you have 1x for Windows, and 2x for Linux (root and swap). In some cases its as simple as changing the partition type to EXT4, or whatever filesystem type you prefer, and SWAP. Call me pedantic but I just not like the idea of "modifying" something in Linux that Windows has created, especially something as important as your filesystem. But it will work, none the less.
Caravel's route involves wiping the whole disk, and creating one single partition for Windows, leaving the remainder of the space unformated for Linux. You then install Linux, creating the two partitions from the unused RAW space on the hard disk. This is my preferred route. Windows handles its twin partitions (by adding System reserved at start and C afterwards) and then proceeds to install Windows ignoring the free space thats unformatted. In Linux it instantly recognises the Windows partitions, and you just create your Linux partitions in the "free space". Make sure SWAP is the last partition you add. For reasons of performance its always wise to place SWAP at the very start or the end of the disk.
Either or is fine. Achieves the same end goal. I find VM performance varies according to the resources you allocate to it. If you give it a percentage of more than one physical CPU core it performs faster. As does increasing the RAM and enabling 3D performance with a decent amount of GPU RAM. Mileage will vary, highly dependant on the available CPU cycles/resources and the available RAM.
Be very careful not to starve your host of either, the whole system will slow down otherwise. Rather frustratingly I find my Intel quad-core Q6600 starts having issues if I dedicate more than 2 CPU cores to a VM, though with 8GB of RAM I can afford to lose a gig or so of RAM for each VM.
The single biggest limitation for any VM in my experience is disk I/O limitation. Running a VM from the same physical disk (whether its on a different partition or not) increases disk I/O due to the overhead of two OSes running on one disk at the same time. If you want the best performance you need the VM to run on a separate physical disk to the host operating system. There are options to actually use an entire physical disk for a VM, or a "folder" image within a folder on the disk - basically a virtual disk.
I run virtual disks, but on a completely separate hard disk to my host OS. If your son is not used to Linux I would strongly suggest a VM at least until he decides he wants it long term. Unless your happy wiping disks and messing around with boot loaders etc.
EDIT: My Linux guide in the link below this post covers installing Ubuntu Linux in a VM. I use Virtualbox, which is highly regarded. It might prove useful for you in getting it installed. Virtualbox can be downloaded from
here.
By the way, VM = Virtual Machine.