This is a guy who wants to have his cake and eat it too. He hit the jackpot when he met you. For 8 years he's had things exactly as he wants. Of course, he doesn't want this arrangement to end. You fell in love. It's possible that he did too, but he'ld rather exploit you than love you. After all these years, he is not going to change. In his mind, you are there to be used. He considers himself virtuous because he warned you not to expect more. He's not in this just for sex. Sex is not that hard for someone like him to find. Sex with you is extra wonderful because he knows you love him. That's why he keeps coming back. He has you exclusively to himself, while he remains free to pursue anyone, anytime, anywhere.
I feel for you because I spent 4 years doing what you're doing. Exactly like you, I would tell him I couldn't take it anymore and I'ld tell him it was over. He'ld stay away for for weeks and then show up at my door. Each time I would take him back. I just didn't have the will power to stick to my decision. I was lonely. I felt that what I got from him was better than nothing. It only ended when I moved to another state. After I was gone for a year, he called me up and said he wanted us to live together and maybe get married. He clearly missed me very much. Lucky for me, the spell was broken. Moving had freed me. No way would I go back.
Your "friend" is not ever going to show you some mercy and leave you alone. Even if he got married to someone else, he'ld still come around to see you to "have some fun." He'll figure, "Why not?" He knows good and well that you "have feelings" for him. That's part of what keeps him coming back. He enjoys you caring for him. He wants that. This is why he gets jealous and angry, when you are not available to him. But he will never, ever reciprocate your affection, except to give you just enough attention to keep you hanging on. You will remain starved for love. It's an awful way for you to keep living. Your only salvation is to stop this completely. I do understand how hard that would be for you. I've been there.