My mazda termperature gauge

I have a 2001 mazda 626 with 142,000 miles on it. It is an automatic. A couple of days ago I noticed that the temperature gauge was pegged above the H while I was driving at 65 down the highway. The car was acting fine other than that, no smells or noises or anything unusual. I slowed down to 55 and the gauge moved to just below H. When I came to a stop at a light, the gauge fairly quickly comes to the normal range (midway between C and H). I checked the radiator fluid and it is full. I did notice that when I parked the car the radiator fan doesn’t seem to come on, but it is below freezing now in Idaho.

Any ideas of what is wrong with this car?

This sounds like a faulty thermostat, which is a cheap repair that you should try first. If that doesn’t help, the water pump is likely failing. If you change the water pump, pay the extra $150 to replace the timing belt. It’s probably wishful thinking to blame the gauge.
Don’t drive the car while the gauge reads near and especially above the H. Even if there are no other symptoms (which would include loss of power and a loud clacking sound from the engine), you should assume that the gauge is correct and the car is overheating. Until this problem is resolved, always pull the car over and let it cool down (running or not) before you continue driving the car.
I assume that the heater is providing plenty of heat to the cabin with no steam or smell, and that the radiator is still full and there is no leaking fluid or loss of fluid, and that the fluid was changed according the car’s manual.

Thanks. You are correct, the heater works and there is no smell, no loss of fluid, etc.
I guess I will change out the thermostat and see if that works.