It varies. Sometimes it is because he views himself as ordinary; sometimes because he views himself as a bad person.
Because he has committed atrocities
The Doctor believes himself to have killed all the Dalek and Time Lords. While one could argue that the Daleks had it coming to them, the Time Lords may not have. In any case, the destruction of an entire species, even a wholly evil and xenophobic one, is nothing to take lightly.
He also destroyed all the young of the Racnoss, and wiped out countless other species. Often in self-defense, yes, and often to save countless more, but nonetheless.
He left Rose in an alternate reality.
He wiped Donna's memories (albeit to save her).
He has caused the deaths of some of his companions (Peri, Clara, Kamelion, Adric), and caused others to be changed beyond recognition (Jack, Donna), or stranded far from home (Amy, Rory, Rose).
This is enough to make anyone believe that they aren't a hero, even if they have done just as many things to help others.
Because he views himself (in his better moments) as an ordinary person
"I am not a good man! I'm not a bad man. I'm not a hero. I'm
definitely not a president, and no, I'm not an officer. You know who I
am? I… am… an idiot! With a box and a screwdriver. Passing through.
Helping out. Learning. I don't need an army. I never have. Because
I've got them, always them, because love is not an emotion. Love is a
Death in Heaven [8.12]
He believes (at this point, anyway), that he is no better than other any person.
True, he is a Time Lord, and possesses talents beyond most other creatures in the universe. But then, so does a human, at least relative our current reference pool! Yet we do not wake up every morning feeling like extraordinary sentient beings. The Doctor has plenty of individuals relative to which he can feel inadequate.