1) Some of the 45nm cores have stuck sensors. This only affects idle temperatures readings, not load. What happens is the sensor can't give a reading below a certain number.. it sticks. So your hotter core may stick at 32 degrees and can't give a reading any lower than that. It's possible the 32 degree core is actually cooler than its reporting.
2) In Vista you can set the affinity of a program to make it run on a specific core:
3) Did you calibrate RealTemp for idle temperatures? To me it looks like you did. Below 60°C RealTemp will inaccurately report the core temperature because apparently the DTS sensor does not measure temperature linearly below this point. The E8x00 series tends to report temperatues 5°C too high between idle and about 60°C. In real temp you can adjust for this for more accurate readings. Read more about it here:
I also have a pretty large difference of core temps. From what I've read its not a big deal, but at idle, it is about 9 degrees C. When loaded under prime 95 I also get about 6-7 degree difference.
(temps are from speedfan and realtemp)
Since both of them are typically <40 degrees idle, and less than 50 at load I'm not really worried about it.