Your DS is probably being difficult precisely because of the dysfunctional relationship you have with your boyfriend.
OP, you're a single parent. I am too. So are lots of others. It comes with many joys and advantages IMO but I'm not going to patronise you by denying that there are times when it is very difficult and frustrating, especially when DC are very small and so utterly exhausting in their demands. I understand why you're reluctant to kick out your boyfriend and the support you're getting from him, because that is what it feels like to you - despite the fact that to the rest of us it's clear getting rid of the boyfriend is part of the solution.
Unlike a lot of people, I don't believe there is a correct timespan to introduce new partners. A lot depends on the relationship and the frequency with which you see each other. Leave it too long, for example, and you run the risk of being so invested in the relationship that you overlook any problems made apparent when your partner meets your DC. Far better IMO to introduce DC and new partner quite soon into things, but always making sure it is kept infrequent and very casual - i.e. just another not-too-close friend of mummy's (albeit children know the difference between platonic and sexual friends). That way you can back out at any moment with nothing more than some idly curious questions from your DC and no hurt feelings. Although you'll always find people for whom it's worked out well, it is never going to be a good idea to play happy families within a few months of meeting someone. Not least because if you're unhappy, it's a lot harder to end things if you feel dependent on someone even if you know they're no good for you. Something you're now experiencing first hand.
I'm a great believer in parents being individuals as well as parents. It is good and healthy for children to grow up seeing their parents with a life of their own - friends, job, hobbies, etc. I'd include a relationship in that, regardless of whether it's between both biological parents or with a new partner. But - and it is a BIG but - as a single parent with no involvement from the biological father, you have all the responsibility for your DS, and his needs must come first before your need for a relationship while he is so young. No one is saying you can't have a relationship, but if you want to be a good mum your relationship must not detract from your relationship with your DS. Right now it is.
The time and energy spent on trying to keep your boyfriend would be better spent on finding coping strategies to deal with your DS. Try some parenting classes. Going on them is in no way an admission of being a bad parent; it is a statement that you're a caring parent who wants to be a better parent.
Having your BF spend so much time with you is actively undermining your relationship with your DS because he is getting conflicting messages from both of you and seeing your attention taken away from him and focussed instead on your BF in an unhealthy manner. The likely response to this is resentment to your BF, or possibly even a preference to do as your BF wants rather than you as he recognises that BF is the one who calls the shots.
You can't keep your BF because you rely on him financially and because you're at the end of your tether with your DS. That's no basis for a relationship and you and your DS are worth more. I'd also pretty much guarantee that if you ended things with your BF and became independent of him financially, your self-esteem would improve and your relationship with DS would improve too.