The only way you're going to get your SD to change his behavior is to change your reaction to it. I grew up with an extremely verbally abusive mother. She used to call me every name in the book, and would insult and degrade me constantly. I continued to live with her because I didn't believe I could financially support myself (thanks to her constant insults). Oh sure, she was generous with the money and her way of showing love was to throw it at me and buy me things.
After I met DH, I realized that I was either going to be trapped and living with her for the rest of my life or I had to make a move. DH and I were dirt poor, but I moved out with him and it was rough going with my mom for a while there. But every time she would insult me or call me names, I'd just walk right out of the house on her, even if I'd just been there for five minutes. For a while it frustrated her more than anything, but then she eventually learned to keep her nasty remarks to herself. My poor dad, on the other hand, is still a constant victim of her abuse, but there's nothing we can do about that unless he's willing to leave her.
I'm sure your SD does have a very loving side to him, but that doesn't make his abuse any less intolerable. The only way he's going to stop doing what he's doing is when his loved ones finally stand up to him once and for all to teach him that his behavior is completely unacceptable.