What would you call a person who calls another person a "faggot" in a very hateful way, when this other person is not a homosexual.
Many derogatory terms - such as "faggot" - are not used based on their literal or slang meaning. Instead, some people use these words as a general insult.
Anecdotally speaking, I have a homosexual friend who calls others "faggot". Obviously he's not using it to mock gay people, but the word has been overused in some environments (such as online gaming) that it has largely lost its meaning.
Therefore you're looking for a word to describe a person who makes a general hateful insult to another person.
I believe the slang word you're looking for to describe this person is: