Just because he hasn't raised over some small sample doesn't mean he's never going to 
raise preflop, so the preflop the 
action does narrow his 
range a bit. From the "bottom" side of the 
range it's difficult to put boundaries, but from the "
top" side of the 
range he probably raises his biggest pairs and biggest broadways preflop, so we can heavily 
discount those. To give you an idea of what I mean, if we take {22+, any 
broadway, any Ace, any two 
suited} and remove {
JJ+, AQ+} we have about 42% of hands, though obviously he could be playing some other ~40%.
His 
flop check doesn't change much, but his 
flop call does. While he won't do it 100% of the time, he will be more likely to 
check/
raise here with hands that beat you, so we can begin to 
discount sets a bit. In general his 
range is still fairly wide since he could be peeling with some various 
Ax gutshots and PPs and middle pairs and so on.
However, to say that something like QT is in his 
range is a bit of a stretch. If you had something like AT here and you bet, I doubt you would consider that to be something he's calling with. Basically, you have no reason to think he's going to make such 
call.
The 
turn sort of does the same thing to his 
range that the 
flop did really. The chance that he has a strong hand is further reduced because he hasn't taken an aggressive 
action. Additionally, the chance that he has 66 or 5x is somewhat reduced since people often shit their pants when a second card comes higher than their 
pair and you show strength. But still, a lot of the 
Ax gutshots and 5x stays in, especially 5x with two spades.
The 
river is a 
scare card... but not really. He leads, which will often be because he has some 
random crap hand like a low 
pair or a missed 
straight draw + 
overcard and thinks something along the lines of "oh shit, that's a 
scare card, I better bet it since he'll be scared!" We've already established that many of the hands that beat you are not likely to be in his 
range because of how he played preflop+
flop+
turn, and combined with the amount of hands that you clearly beat with this 
action so far, he's bluffing a lot here. Small value 
range + large bluffing 
range = we're at least calling.
Sometimes he's going to show up with say AJ, but it's not going to be often. Hell, sometimes he'll even show up with 
JJ, but like we've seen, it's not going to be very often.
So this is at least a 
call. I think a useful exercise would be deciding what the worst hand you would 
raise with is.