S.L.
Wow, what a nightmare!
When my son, at age 3, started sassing me, I told him, "hey, that sounded like you were sassing me" and gave him until the count of 3 to apologize. It took a month or so, but he stopped. I refuse to be disrespected, especially after seeing how letting that go can really screw up a family (my inlaws!!!) Just the other day, he sassed me for the first time in MONTHS. I said, "hey, did you just sass me?" and he immediately apologized. So it really stuck with him over the past year.
That's all I have experience with, sorry. Good luck getting him to shape up!