Install cooling system components ie tstat valve and fan. Check with n without AC.
If it still heats, i would check water body. it is under the timing cover. I am assuming you have a clean system.
The needle is not real time and at about 40% the actual temperature is between 75 - 115 (checked through OBD port). if your needle is moving north of 40%, you are actually running very very hot coolant and at the same time running risk of blowing head gasket.
The needle should always always stay at 40%. I have same gen civic and I've been driving it extensively under the heat, never seen it going above 40%.