There are lots of epithets for people like this - Grammar Nazis, Usage Nerds, Syntax Snobs, the Language Police. The term I was raised with is Snoot. The word might be slightly self-mocking, but those other terms are outright dysphemisms. A Snoot can be defined as somebody who knows what dysphemism means and doesn't mind letting you know it.