Amir and Hassan basically grew up together and share a lot of good memories, but Amir still does not consider Hassan, as you say, a "true friend". This is most likely due to their different ethnicities: Amir is a Pashtun, people who have a history of persecuting Hazaras; Hassan is a Hazara. Amir mentions, "In the end, I was a Pashtun and he was a Hazara, I was Sunni and he was Shi'a, and nothing was going to change that. Nothing" (25).
Aside from their ethnic differences, Amir might not want to admit that they are friends because admitting this might possibly mean that he'd have to stand up to those who condemn him - namely, Assef, the "bully" and main antagonist of the story.
Amir himself is conflicted about this topic as well: "But he's not my friend! I almost blurted. He's my servant! Had I really thought that? ...I treated Hassan well, just like a friend, better even, more like a brother" (41).