He was value betting the river
It has to be true, and makes all the rest of his actions make some semblance of sense. He checked the flop because he didn't have an ace; how could he bet the flop without an ace? But he "knew" that I "knew" that he didn't have an ace either. So when I bet the turn, he put me on a huge range of hands, and when I 3-bet, he assumed not only that I could be bluffing, but also that he actually beat some value hands (presumably TT-QQ) and therefore opted to call me down. When I checked the river he just assumed that I was giving up and hoping he'd check behind and decided to get that last bit of value from my jacks. In retrospect the river showdown gave his intentions away; he showed his kings with pride, and when I saw them and quickly uncovered my full house he was just completed disgusted, that look players get when they can't believe their opponent has slow-rolled them by way of such stark incompetence.