It is the auxiliary verb 'does' (with an 's' at the end) which agrees with the pronoun 'he'.
The main verb (have) is it the infinitive form: 'have'.
When you have the auxiliary 'do'/'does'/'did', or their negative forms, in your sentence, the main verb doesn't have an 's'. For example:
Affirmative --> He goes.
Negative ---> He doesn't go.
Question ---> Does he go?
Affirmative --> He has.
Negative ---> He doesn't have.
Question ---> Does he have?