Saying "fuck off" is not morally equivalent to implying a specific woman was hired for their purely physical assets irrespective of their intellect.
And public shaming is absolutely the way you do it. You need to draw a very firm line in the sand which cannot be interpreted in any other way; some wishy-washy "I wish you wouldn't say that" isn't going to do it for some classes of people, who'll just think you're saying that because the woman is there.
Now, myself, I would probably not say "fuck off." I might stand up and say something like "I'm going to have to ask you to apologize for saying that. You disrespected her and you disrespected me." It is polite but firm. It brings to bear social pressure, letting him know in clear terms what he has done and how he can fix it in the near term.
And public shaming is absolutely the way you do it. You need to draw a very firm line in the sand which cannot be interpreted in any other way; some wishy-washy "I wish you wouldn't say that" isn't going to do it for some classes of people, who'll just think you're saying that because the woman is there.
Now, myself, I would probably not say "fuck off." I might stand up and say something like "I'm going to have to ask you to apologize for saying that. You disrespected her and you disrespected me." It is polite but firm. It brings to bear social pressure, letting him know in clear terms what he has done and how he can fix it in the near term.