The way we do it is if Uni has something she isn't supposed to have, we will call her name sternly "UNI!" She knows she in in trouble and will stop in her tracks. It is a good idea to have a nickname that you call him when he is being good, and then another name when he is in trouble. That was he can hear the "bad boy" name, and recognize the tone of your voice. We usually call her "Noonie" normally, but when she's in trouble, it's "Uni". Like when parents call their kids by their full name, or first and middle name, they know they are in trouble!
So anyway, we will call her sternly, she will freeze, ears back, tail down. THEN, we say "drop it". When you first start teaching this, you will have to gently take it out of his mouth yourself. Eventually they will drop on their own. The hard thing about teaching this IMO is that you can't really reward them after they've dropped b/c technically they are in trouble!
The reason he runs is b/c he thinks you are playing with him, and he doesn't realize what he has in his mouth is harmful. Since he is so young still, he might not even fully understand "no" or even what his name is. Take it one day at a time. He will get it soon, they are super smart dogs. In the meantime, just be extra careful with those thumbtacks.