Do I need an antivirus program in each virtual machine?

Solution 1:

No, you should not be using AV software on the host to scan your VHD location. You can install AV software on the host but you need to exclude several Hyper-V related folders from the real time AV scanning engine and from any scheduled AV scans. You should then install AV software on the individual guest virtual machines.

https://support.microsoft.com/en-us/kb/961804

Solution 2:

You need to install AV which is specially designed for Hyper-V. It will install itself into host but it will scan VMs and their vRAM, on-disk images and also intercept traffic between VMs and host routed over vSwitch. 5nine has one (I'm not working for them it's just an example).

http://www.5nine.com/5nine-security-for-hyper-v-product.aspx

Solution 3:

@BaronSamedi is right, best approach is a VM-aware agentless AV solution. 5nine has 3 AV options to choose from including Vipre, Kaspersky, and IIRC ThreatTrack. An alternative may be ESET, they recently started offering agentless specifically for virtualized environments.