You need to decide. Do you want your child or do you want your abusive cunt of a boyfriend and your fucked up relationship? Because I am not seeing anywhere in your post that you actually understand that you need to leave him.
You can't have both. SS will not allow you to have your son because you are choosing the fucked up domestic abusive relationship rather than choosing to keep your baby safe. This is an adult choice YOU have to make, not him, not his mother and actually not us or the rest of the internet.
Never mind him doing courses etc, he won't, and he won't ever change. This is him - an abusive cunt. You have to choose what YOU want. Stop bloody asking the man who hits you what his opinion about the relationship is. Really, just stop that, it just allows him to fuck your head up.
Look you are young, and I understand that nothing in your life has given you the skills to understand that no man should ever, ever hit you. Not once, not ever. Not for any reason. You are worth more than that. You do not have to try to make your partner change or agree to whatever - YOU need to grow up and protect yourself and your son. You do that by splitting up and staying away forever.
And while you are at it - why are you wanting HIS mother to sort him out? You are a mother - sort out what YOUR son needs.