My son was, and sometimes still is, the same way. As bad as this sounds, you may have to take the Mommie Dearest approach as far as getting him to eat goes. We've been fighting this battle now for two and a half years (my son is 4 1/2) and I can guarantee you that it will not get easier if you don't do something about it now. The milk issue had gotten so bad in my house that my son was terribly constipated and has to have a laxative everyday to reverse the effects of the non-stop milk.
Some of the things we did were:
Switch to soy. It will still give your son the protein he needs and it will help keep him from getting constipated.
Make him sit down at the dinner table and eat with the family. I know it's easier said than done, but we turned meal time into a game. My son loves "beating" mom or dad done in a "race" to eat. He also thinks it's nifty when we're all eating the same food at the same time.
If he does not eat his dinner, don't feed him again until breakfast. I know, I know...I sound like an abusive mother and I used to say the same thing about other parents who did it to their children. One day I was watching Dr. Phil (I know, I have to take what he says with a grain of salt) and a mother was on stage in the exact same situation I was in. He told her that children will eat when they get hungry and, if they don't eat their dinner then, they will learn that mealtime is when you're supposed to eat and if you don't eat then, you don't eat until the next meal is served.
I'm sure I'm going to get some nasty responses to this, but I had finally gotten to the end of my rope before trying the tough approach. I have to say that it's worked and just this past week I got my son to eat salmon cakes, lime beans, peas, ham, chicken (not in nugget form!), and fish. I hope this helps...
*Side note: To the moms who read this and think I'm being abusive, neglectful and horrible to my child please don't throw things at me or wish me ill will. I hate having to take this route. I mean, I hate leaving my baby in her crib to cry it out, but sometimes children leave you no other choice!