Is he selfish or am I needy? Or both?

We're 18 and have been together for 7 months. If he wants to do anything, we do it. He wants to watch a movie I don't, we watch it. He wants a bj, he gets one. But it seems like when I want something and he has any aversion to it, he will refuse to do it. Even if it causes little sacrifice on his part. Like writing me a letter. He does give me store-bought, material gifts. He just doesn't give me the sentimental stuff anymore (he's done it once and it was great, but that was a while ago and hasn't happened since). I asked him to write me a poem or something and he refused. He won't do romantic stuff like blowing me kisses and has complained about holding my hand in public (hates PDA, so it could be that). He doesn't text me first anymore and doesn't call unless I beg him (this could be because he hates talking on the phone, because he's very eager to see me in person. I'd still like a good morning text and a call sometime). He doesn't do stuff for me that he doesn't want to do (Is it a selfish mentailty on my part to want him to do that?). He also refuses to talk about anything that's sad. I was abused and wanted to talk about it, but when I did he stayed quiet until I was done and then tried to watch a movie. I don't know if I'm asking too much. He's accused me of being needy and I feel like I am, but I don't know if it's because I want him to do things he doesn't want to do or something else. I feel neglected and unloved when he refuses to do things I want or like. Other than this, he really is a good guy. He just doesn't seem to know how to treat me differently from a friend because he has 0% experience and is socially awkward (we're both introverts. I'm INFJ he's INTJ, if that means anything to you).
It's him - It's his first relationship ever, so I don't think he's doing this on purpose. I have no clue if he'll be willing to change. I've never talked to him about it. Any advice on how to without sounding accusatory?
It's me - How do I change this behavior?
Updates
+1 y
I'd like to at least tell him what he's doing that's hurting me and work on my neediness before we just give up. I've never confronted him on it and have no clue whether he'd actually want to change. I'd like to at least give him a chance in case he would be willing. And even if we do break up (which if he doesn't change or I don't, I've accepted will happen), I still need to work on my needy behavior as it's harmful in any relationship.
Is he selfish or am I needy? Or both?
Post Opinion