Linux automatically tries to spread each process across the available CPU's as long as Symmetric Multiprocessing is enabled at the kernel level
look in /boot/config-(fill in kernel version here) for the following:
Then at least at the kernel level, processes are attempted to be distributed evenly.
Unfortunately the situation is slightly more complicated at the user level. Unless a program has Multithread support it may only run on one core. Many process intensive programs do have this, but you may need to enable it with a specific option.
For example ffmpeg has the -threads option
Is there a specific processor intensive program you want to be spread out over the cores?
Another thing that may be an issue is the age of the kernel in 10.04 (two years old). With a newer processor, it's possible not all the hooks are in there. You may want to try updating your kernel to the latest version or consider upgrading to a linux distrobution with at 3.0+ version kernel. It looks like there are still significant revisions to how the linux kernel handles the sandy bridge architecture.