The phrase “to heap coals of fire on one’s head” means to return good for evil, and thus make the recipient uncomfortable.
The passage most often quoted is from the Old Testament, Proverbs xxv, 21, : “If thine enemy be hungry, give him bread to eat; and if he be thirsty, give him water to drink: For thou shalt heap coals of fire upon his head, and the Lord shall reward thee.”
It is possible that the ancient Hebrew writer had some old metaphor in mind, but the usual explanation of the biblical passage is that the coals of fire upon one’s head might melt him into kindliness.
It reminds us that our word “remorse,” which has a somewhat similar meaning, comes from the Latin “re plus morsus”, which has the literal meaning, a biting or gnawing again.