I mean, I'd love to punch the guy in a fight if the MC ever fights him after everything he did, that doesn't mean he'd become a villain or a bad guy, friends fight each other aswell, although in this instance, Zach does deserve a punch for putting his twisted-mind thoughts on your back because he didn't get the girl he wanted to "bang", it's not like Zach is the smartest in the game, but I can see him improving after a beat down.
Being punched clears your mind sometimes, and he deserves to re-evaluate himself before it's too late for his college life. And Zach is the way he is partially because the MC doesn't tell him off enough for him to realize "hey, I'm actually being a dick here, let me change", the MC just brush it off and the few times you actually tell him he's being a dick, he apolozies and whatnot, so yeah, people can grow up, maybe he will aswell.