I'm sure the original problem was solved long ago, but for anybody with a similar problem:
One way to avoid copying the whole image would be to create a .vmdk format image that refers to separate extent files for the partition table and for the partition contents.
I have this snippet lying around in a .vmdk file from a test I did a while ago:
RW 63 FLAT "parttable.bin" 0
RW 585937489 FLAT "partition-image.bin" 63
This means that the 63 sectors starting from offset 0 are read from the raw file "parttable.bin", but sector 63 and upwards come from the raw partition dump "partition-image.bin". (Of course, replace 63 with the actual offset to the first partition, usually 2048 these days).
The end result is that, from inside VBox, it looks like you have prepended the partition table on to the front of the partition image, without having to do the lengthy copy operation.
Partition the drive from within the VM and, if you get your offsets right, you should see your partition image contents inside the newly-created partition.