These sensors have two types of error. Differences in TJMax and slope error. Slope error means that the further you get away from the Intel calibration point, the more these sensors will start to wander and either read a little too high or a little too low.
By running Small FFTs and getting your CPU core temperature as high as you did, you have got to the point where these sensors have almost no slope error so the differences in the 4 cores at full load is all due to differences in how Intel sets TJMax. The default TJMax for a Q6600 - G0 that I recommend is 100C. Your G0 is exactly like the G0 I tested and I came to the conclusion that actual TJMax is closer to 105C on the second CPU (core 2 and core 3).
I would adjust TJMax to 100, 100, 105, 105. I believe that adjustment will give you very accurate core temperatures at full load. The theory behind this calibration is that when you have 4 cores all sitting very close to each other, all covered by the same heatsink and all running the same code, the core temperature for all 4 cores is going to be identical. Heat transfer is very efficient.
When there is a large difference in load from core to core you can have instances where the peak core temperature of one core can be different than the core that it is sitting beside but when both cores of a dual core are fully loaded, the majority of difference you see is sensor error and not a difference in actual temperature.
After this first calibration step, now you have to look at the slope error issue at idle. Some of your sensors likely read too high while others read too low at idle. Based on the data you've shown me so far, all I can do is guess at this. If at idle your actual core temperature across your 4 cores is 50C, you could use a negative calibration factor on core 0 to reduce its reported temperature, a similar positive calibration factor on core 1 to increase its temperature, core 2 looks fine if you are using the correct TJMax of 105 and core 3 would need a calibration factor about twice as big as core 0 or core 1 and it would need to be positive to bring it up to 50C.
After doing this the best test is to then go into your bios and lock your computer at 6x266 ~1600 MHz and drop your core voltage as low as it can go and then boot up and compare your reported core temperature to your water temperature if you are water cooled or to your air temperature with your case open. This can give you some idea how accurate your calibration is. Depending on what type of cooler you are using, you can tell if this calibration is accurate or out to lunch.
Do I recommend calibrating inaccurate and poorly documented sensors. Not really. Will a calibration make these sensors 100% accurate from idle to TJMax? No, that's impossible since these sensors have too many issues. The recommended calibration might make your temps a little more accurate but it involves a lot of guessing and assumptions. Most users are probably better off realizing that these sensors were never designed to be used for accurate temperature monitoring. Some CPUs are better than others at getting reasonably accurate data out of them while many 45nn Quads border on the impossible.
I don't worry too much about temps any more. Run your CPU as cool as possible and don't let it thermal throttle and it will run just fine.