Finn didn’t say what he did in the heat of the moment. He said it, waited a few seconds for it to sink in and for Santana to stop, and then carried on. Not even just about her sexuality, but about what it makes her do and how it affects her personality. He thought it through. Evidently. You can’t even dispute that.
Then he slowly walked towards her, dragging it all out even though there were many people around, and Santana was evidently already hurt by what he had said. He threw her to the ground then he kicked her while she was down, and he knew exactly what he was doing. Then he called her a coward because she was afraid of coming out. Anyone can realise that calling someone a coward for that is completely out of order.
And then in the next episode he never even apologised. He never said sorry for what he did, and for people finding out. All he did was shift the blame. The ad would have never aired if Finn hadn’t done what he did. He was responsible for the information getting out, and therefore he was responsible for Santana being outed to the entire state in that ad.
Just because the show didn’t portray Santana as the person that attempted suicide after being outed in a horrible way, it doesn’t make it any different. She’s the head cheerleader at a high school in Ohio. Coming out to her is just as big as it is to the ‘jock’. The show may have breezed over it and resolved it with a ridiculous next episode, but the situations are the same.
You can’t defend Finn in that scene. You can love the character all you like, but surely you can’t claim that he was right in what he did.