Implicitly throughout your question and explicitly in your comments you've called this particular programmer childish. Is the problem that he is doing this near you? Or is the problem that he is doing this at all? Overtly you've said the first but throughout your comments it seems like it is the second. This is particularly noticeable when you say things like: "Programmer should not behave like that."[sic]
This is a problem because until you verbalize, to yourself, what the issue is then you won't be able to find a solution. If you or the other programmer were moved so that you couldn't hear / see the other programmer but, on getting a cup of coffee say, you saw him gesticulating all over the place... that would still bother you wouldn't it? I say this because even if you cannot hear the coworker their actions still bother you.
I'm a grumbly coder. When I get an error that I swear I already fixed but because of multi-cross-backwards inheritance something else comes up and bjorks it... I flip off my monitor. I tend to talk to myself, occasionally aggressively, while coding as well. When something works? I TOTALLY do a victory pose. No shame. I know others who do the same. Coding, to me, is visceral and, when I'm in the flow, adrenaline pumping. To me coding, when I'm in that moment, is like a video game and just like how people lean when steering a fake car in a video game, I physically get into my coding. Not everyone is like this. I can see from my colleagues that some folks can code like they're writing a grocery list. They can be sedate and relaxed while wrestling with challenging problems and, to me, that is so foreign, so alien that I can't understand it. In much the same way that a wildly gesticulating, physically into it grumbly coder is to you.
It would be a funny world if we were all the same wouldn't it?
At the end of the day you can only change the things you can control. Life, and perhaps especially life in the workplace, is a series of compromises. If you end goal is to have this person code like you... that's not a compromise. Of course ignoring something that bothers you and letting a grumbly coder run amok, because we will, is also not appropriate.
You need to take some time on your own and figure out what your ideal end goal would be and then what an acceptable end goal would be. I would hate to think that my gestures and self-talk bothered my coworkers. I would be embarrassed but, ultimately, appreciative if one of them came to me with this as a challenge and an appropriate, livable compromise. Maybe your compromise is you wear headphones and this programmer calms down their gestures. Maybe the programmer turns down the volume(a lot) and you ignore the gestures. Maybe that compromise is one or both of you move around in the office a little bit to have more space between you.
I think you would benefit from taking a moment to consider that your method of coding is as alien to this coworker and his is to you. Telling someone to "hold their emotions" is fairly hostile and inappropriate. Imagine the opposite, if I were to say "quit coding like a dead fish, show some EMOTION!" that would be hurtful and rude to you. This is because neither of these show compromise. I would recommend looking at some of the other excellent, similar questions on The Workplace about working in noisy/distracting environments and suggestions for mitigating or compromising on those issues.