CPU temp is usually a measured average (mean) of temps. There is probably a difference in "core" tempuratures and the 51c may be core 1 and 37 would be core 2. There will likely NOT be this drastic of temp. variation betwen cores but, it's not uncommone (at all) for all cores being different temps. (Core 0 is usually the highest due to many apps. only utilizing one core).
No its not, CPU temp is the package temp, core temp is the temp of the individual cores.