Did he definitely know it is your birthday? Do you have a calendar visible with birthdays listed? I'm guessing you're a single parent so no-one else on the scene to gently remind him? Before a birthday here we are usually talking for a week or so before about what take away or meal we want for it. Its a gentle reminder for everyone it's coming up as well then.
As a PP said, does he have his own money and chance to go shopping alone? At 16 I brought all my cards when I went shopping with my Mum and my dad would give me money for a present if we were going shopping or would order it for me. I didn't have friends who went to town and I wasn't confident to go alone.
He will be aware you have a birthday and the general time of year but it doesn't mean he remembers the exact date, perhaps he had a present and hoped you'd hint when exactly but he sure as Hell won't give it you now you've shouted at him and acted like a child
Shouting at him and calling him horrible was childish tbh. He's got exams atm. Now he'll have gone into his exams today under a cloud and have lost his focus. Well done.
When he comes home, give him a big hug (if he'll let you!) and apologise for shouting and explain you were hurt by his actions then discuss what special take away you want.
Don't punish a child by cutting them off. I suspect "everything" doesn't mean he doesn't do anything, more you getting at the years of work you've done. He should be doing some chores but he is still a child too and needs a supportive parent.
Definitely do NOT "forget" his birthday or you'll only make it worse