There might be more direct ways, but one thing you can do is:
1) Prepare an installation in a virtual machine under Ubuntu 12.04. This can be done from a downloaded installation image of Kali Linux.
2) Once you have a VM setup, format the emtpy partition, mount it and tell the VM control application to make that available to the Kali VM (or mount the Kali VM disc directly in your os, if that is supported).
3) Copy all the files so that the root of the Kali VM gets to the base of the mounted empty partition. ( something like
find / -print0 | cpio -pdmv0 /mnt/new_disc).
4) Adjust the mount points in /etc/fstab on the target partition (adjusting /dev/sdXY names or UUIDS as necessary)
grub-mkconfig under Ubuntu, check the output for Kali being recognised. If so write the output to
/boot/boot/grub.cfg and after a reboot Kali should be available in the startup men and bootable.
I have done exactly this using VirtualBox to prepare a remote upgrade from 10.04 to 12.04 (prepared on a 12.04 box), but there is nothing very special about the procedure that other VM software could not be used.
(With VMware—which I used from 1999 until switching to using VirtualBox—you could directly use an existing partition as drive for the virtual machine. VirtualBox might be able to do that as well, that would do away with step 3 and possible 4)