There is an open-source tool called gptgen (
https://sourceforge.net/projects/gptgen/ - yes, it's my project), which does exactly what you want to do. The only requirement is that there must be enough space at the beginning and end of the disk/array (beginning is usually not a problem because in MBR, partitions must be aligned on cylinder boundaries, and a cylinder is usually larger than the 34 sectors needed for conversion; the end can be tricky, but if the data is already on a disk/array larger than 2 TB, it's unlikely that you will have problems), and that the disk must not be dynamic. (If anyone can point me towards documentation of the dynamic disk format, I will be grateful.)
So, this is what you need to do:
-Backup the MBR & partition table of your HDD (just in case something goes wrong).
-Download gptgen (package contains source code and a precompiled Windows binary)
-Run "gptgen -w \\.\physicaldriveX" (X is the number you get from diskpart's "list disk" command). If it complains about free space, resize your partitions with a partition manager (Gparted is an excellent open-source tool), and run gptgen again.
-Reboot, and Windows should recognize your disk as GPT.
-Expand the GPT partition to the desired size (diskpart is recommended, but Gparted can also do this).
(Note that this merely converts the existing partitions to GPT format, and does not create Microsoft's required partitions, e.g. EFI system partition, MS Reserved partition, etc. - you need to create those partitions yourself after the conversion if you need them.)