My husband and I adopted a feral kitten from a rescue group a month that was a bit of a scaredy cat at first - very friendly if you pet him, but also timid / skittish and would run away at the slightest movement. We are now at the point where he's now cuddling with us and I did it really gradually, by letting him approach us and petting him and giving him treats for coming up to us.
Last night he cuddled between my husband and I on the couch for the first time. We encouraged him by putting a treat on the couch and after he ate it he started to investigate the couch a little and then curled up between us. It was so cute! And I got him interested in going on our bed by playing with some of his toys on it. (When we first got him he hid under our bed as his "safe spot". However, he'd poke his head out to play with string or other toys so we gradually got him coming out by tempting him with toys etc. And then I got him thinking about going on the bed by tossing up some of his ball etc onto the bed. At first he'd be hesitant to go up there, but after a while he couldn't resist going after something. At first he'd jump up, grab the toy and jump back off again, but as he got more comfortable, he'd stay longer up there, and then even nap there. And then once, while he was napping there, I got up on the bed very slowly and lay down beside him and was petting him.
So maybe try something like that, but putting his toys or a treat up on the bed for him and then giving him lots of attention while he's on the bed. Just be patient. Good luck!