It will break your heart, but you are not doing him any harm by doing it, you are helping him.
He was born not knowing what to do and although sleep is natural (!) if you have allowed him to fall asleep in your arms since birth, then this is what he thinks he should do. You are encouraging that by still doing it, you cannot expect him to know to go to sleep in his cot.
Re. waking after 2 hrs, is quite similar. If you have always lifted him when he wakes, rather than allowing him to occasionally settle himself, again, this is what he will consider to be normal.
When you say it takes you a couple of hours to get him to sleep- what do you mean? What do you do? He should be able to get himself to sleep, and yes you're right, he should be sleeping pretty well on his own in his cot.
I would suggest tomorrow night you wait until he is very tired (but not overtired and cranky) and take him to his cot. Lay him down in a calm manner, with any comforters (mine had a shawl) and tuck him in. Low lights, perhaps from the hall only. Say good night and leave. If he cries immediately, I would say you could rub his tummy and reassure him. You would then probably need to leave the room for a little while and return before he gets frantic. Repeat. Repeat. Repeat. If you can get him to stay lying down, and you think he might fall asleep with you rubbing his tummy then try that. He needs to learn what to do, and you need to show him. If this works, then you need to keep doing the same every night, parrot fashion, but every night you need to move further away. 1st night, rub tummy, 2nd night, hand still. 3rd night, hand on legs, 4th night, hand on foot etc.
When he wakes in the night, he's not going to settle himself if he's used to you doing it so you'll need to repeat. But you have to remember that whatever you do, you are accepting as the norm and he will carry on. You have to make the break but you will have to remember that he has to re-learn going to sleep and it won't be easy.
I had a friend who never had a full nights' sleep and always had 3 in the bed until about 6 when one of them would retreat to the spare room. I swore that would never happen to me! If ds fell asleep on his last feed as a baby I would try to wake him just so I could put him to bed awake! Dh works away and so when ds got older he would occasionally wake and come through- this started when I was pg with dd, about 7 or 8m. I was determined not to give in as I could just see ti being a nightmare when dd was born and dh was away, so every night ds would come through we would have a cuddle, and I would take him back to bed. It was so hard- heavily pg, spd, on my own, but I knew that giving in would eventually be worse. He did wake once or twice dd was born and I remember him sitting with me while I bfed dd and got her back to her crib, then taking him back to bed, I think he was awake for about an hour but it was lovely company! I felt awful taking him back to his bed on his own while baby dd was with me but he was fine and I had to start as I meant to go on.
You just have to remember that when he cries and it breaks your heart, he is in no danger at all, he is perfectly safe, but just wants his mummy- that's all. It's not harming him. You will be doing both of you a huge favour when you crack this.
I haven't really have to do the cc thing, maybe someone else will come along with better advice, but I have 3 dcs with pretty good sleeping habits so I just hope you can get the same- lack of sleep is a killer.
Good luck, and do not give in!! You can do this!!