This is a multi-faceted situation.
First of all, your co-worker is an idiot for mocking anyone.
If someone knows how to speak a foreign language, and there is a group of people seated together who all know the same language(as on a coffee or lunch break), and there is no one present who does not know their native languauge, then they should feel free to speak it amongst themselves.
During work hours, people should speak the language that is predominant in the workplace. For the most part, in the USA that would be English.
I do have a problem with folks who know English plus another language choosing to speak the foreign language in front of those of us who may not know it. That's rude too. As a kid, I had a neighbor who did this. When the mother wanted to say something to her daughter in front of me that she didn't want me to know, she spoke to her in Ukranian. I would just get up and leave the house, and not play with her daughter anymore that day. Today, if people do that in frot of me, I keep interrupting them and asking "what did you say?" or "what does that eman?" so much that they get aggravated and just stop talking.
I also have a problem with someone who has lived and worked in a country for more than 5 years, and still doesn't know the language. IMHO, if oyu are going to live and work in a country for an extended period of time, it's up to you to learn the language of that country. There should not need to be bilingual signs, directions etc.