I think it's more likely he has an overpair. You also played this hand really well. First off you bet it out, and when he raised you just called; then you called the turn, and raised all in on the river with a card that definately didn't help you. It's hard to put you on a set with any of your moves, though maybe by the river he might know you are slowplaying.

He's not going to raise a flop with top or middle set. He seems to be protecting something, it's definately an overpair. But if he played a set like that it would be nice and agressive.