Give him a choice: "you can hold my hand or I can carry you." He's young to understand the cause-effect, but he has a real choice (but if he doesn't choose, you get to choose for him).
You'll probably have to deal with the screaming for a while. He's expressing his displeasure. But he can't have his way, it's not safe. Just remember, every parent has been in public with a screaming child at least once, so when we see a parent patiently dealing with that, we know everything's ok.
Have you though of getting him a backpack-leash? It looks like a cute backpack, but has a harness that he can't undo on his own, and has a leash connected to keep him close to you. Gives him some freedom, but still lets you keep him near and safe. Some parents love these (I did, wouldnt have made it without!) and others think they're awful (I got lots of snide comments too), so I would say it's a personal choice and ignore other's comments. But I thought it helped.