The temp sensors in your cores don't actually give the actual temperature values. Instead, they give the distance(In degrees Celsius) to Tjmax(The temperature at which the processor will shutdown to prevent damage.) Coretemp and Realtemp get the temperature by subtracting the distance to Tjmax value from Tjmax. The problem is no one really knows what Tjmax is for any processor because Intel does not supply that specification. Realtemp uses 95°C as Tjmax, whereas Coretemp uses 100°C. In my opinion, 100°C is more realistic for a G0 Q6600 because if I use 95°C it sometimes shows my temperature 5°C below my ambient temperature when I first boot up my computer in the morning. You can use whichever program you want, you just might have to change Tjmax in Realtemp to get accurate readings.
(Oops, your're not using a Q6600

Anyways, I'm not sure what values the programs are using for your processor but there is probably a similar difference.)