Well, if he's acting like that, I'd say that he doesn't really want a relationship...
But I'm always for talking things out, so sit him down and ask everything you just said here to him. If he cracks under the pressure and decides to end it... Well, then he's shown his true colors. But if he's willing to try and make things better then go for it!
Let him know that it's not all about what HE wants, and if the relationship isn't mutually beneficial, then its better for you to go (And it's true! Don't fill your life with toxic relationships; there's more than enough drama in the world, so if you can save yourself some, then that's good.)
As for the Christmas thing... Get him one, but don't give it to him on Christmas, see how that goes. If he's in it for the real relationship, then give it to him for New Years and say that you had it all along, but you wanted it to be a surprise.
(Sorry if it seems harsh, but I've been around the block so to say too many times, and I don't wanna see anyone else hurt like I have. I'll be here if you need it (Hugs) )