Stop thinking that staying with him is doing him some kind of favor. He has a girlfriend that isn’t in love with him, has cheated on him several times, and feels smothered rather than appreciative of him. You are staying with him because you don’t want to face up to your needs, not simply because you don’t want to hurt him. I recommend you take responsibility for your decisions and move on. You need to make this change and your boyfriend needs to be free to find someone that matches the way he is in the relationship. Pretending to be loyal while not really wanting to be there does no one any good.
However, there is no need to hurt him beyond explaining you want to end the relationship. Explain that the relationship isn’t working for you and move on.