I was like that - especially as Charlie would run at me if I put my hand in his cage! But that's partly because it was a rubbish cage and he was stressed and aggressive (Rotostak space command).
The bathtub thing worked for me. Don't try to handle him in the cage until he is used to you. I put a kitchen roll tube in the cage, holding onto the other end and he would walk into it (they usually just walk into a tube, but if he doesn't have a treat at your end and that will tempt him in). Once in the tube I would lift the tube out carefully, have his hamster ball to hand, and put your end of the tube in the hamster ball.
I'd do this over a big cushion just in case he leaps out, but mine never did once in the tube - he felt safe in the tube. Have a peek in the end he went in to make sure he is the right way round! If he has turned around in the tube, then turn the tube around so his head end is pointing into the hamster ball. He should just walk straight into the ball. Then pop the lid on, let him have a run around for a few minutes in the ball, then carry the ball to the bathroom - I used to wrap the ball partly in my jacket while doing this so he felt safe, and talk to him on the way there!
Put the plug in the dry bath, put the hamster ball in the bath, then take the lid off and let him come out when he is ready. He will probably do what mine did and just try to run up the side of the bath and slide down again, over and over! Put the cardboard tube in the bath as well so he has something to play with or hide in. We couldn't try and pick him up or even touch him in the bath for the first 2 or 3 times as he was nervous and jumpy and that made me jumpy. But then we tried sitting in the bath first and he would just run all over us. (make sure he doesn't run up your arm and jump out by steering him away from that area with your hand or with the tube). After that, our little boy used to sit in the bath and I would just start stroking the hamster's back while he was running up the side of the bath.
He would tolerate it the odd time but sometimes would jerk his head back as if warning you he could bite - but he never did bite. So then I'd stop for a bit and then do it again a bit later. Once we were able to stroke him while he was in the bath (after 2 or 3 times he got used to it), I then tried to pick him up, but from underneath. So just cup your hand and slide it under his middle, lift him very slightly but don't hold him, and let him walk off your hand. After a couple of bath playtimes of doing this we were able to hold him and he seemed relaxed and not jumpy. The following night I put his hamster ball on the sofa on top of a big fleece blanket and opened it for him to come out. I kept pulling up the edges of the blanket so he couldn't escape. Picked him up and he just sat on my hand and I was able to stroke him - lovely!
It took weeks with ours but yours may be better if he was handled in the shop - I don't think our hamster had ever been handled - the pet shop assistant got him out in a tube. He is now perfectly handleable and never does the threatening head turn but he does try to run off a bit sometimes, but only slowly now so he is easy to manage.
Have a look at our recent little video. He is just out on our little boy's bedroom floor in the second bit of the video, on a blanket, so could have run off, but didn't venture too far. If you have a tube or two out with him they tend to run in them and hide anyway.
I've put both my videos on. The first one was a couple of months ago, before he was handleable, playing in the bath (with our little boy's Octopod!). The second one was a couple of weeks ago. Both very short. No more than a couple of mins. Note - the plastic anchor didn't hit him on the head! It hit the side of the bath but I couldn't see. Also it is a welly boot I am talking about in the second video. Treats help them go where you want!
https://www.youtube.com/watch?v=IndB6nkeP7k
https://www.youtube.com/watch?v=iKzhFx1b63c
Hope this helps!