Well your story sounds the same as the one I lived threw in High School (but in reverse). In High School I meant a girl in one of my classes, ignored her the best I could, finally talked to her enough to get her aim so we could just chat when we were bored. While on aim thats where we learned more about each other and learned we had a lot in common and then I asked her out =). So yes, I meant a girl, made her a best friend to the point we knew lots about each other, then i dated the girl.
The only tips I can give you is you have to not "try" to become his best friend. If your going to be someones best friend it has to be a natural thing. Does he like a game online or doing a specific activity like paintball? The best thing you can do is try to do things with him and then be the talkative one to learn more about his likes without directly asking him if he likes it. I know that sounds confusing but a good example is if he likes League of Legends you ask "how many matches did it take you to get good" instead of "how often do you play this game". Saying the first thing shows your interested in the same thing and shows you want to keep trying to play with him, the 2nd one just gives you a standard answer of some time period that would make him think twice about an answer because he might think you will judge him on how often he sits around playing videogames.
There is no real answer and im sure you will find your way!