I have the same problem with my dog, she eats everything, even if it's not food.
Here are some things I tried, and now she doesn't eat that much things and I can call her back if she finds something food related somewhere.
I will list the ways to teach the dog to leave things if you want him to, this way if he doesn't get stuff you want to take from him, he won't be agressive.
1. Hand feeding can be very useful. If he learns that the only good food comes from your hand, it can be very useful.
2. When you see he notices something that he wants to get, like some food left on the ground in the park, try to be more intresting than the object he wants to get. If he goes back to you, play with him, or give him a huuuge praise, or food he really likes, the main point is that he has to learn that YOU are more intresting than anything he can find on the ground.
3. This is the most dramatic, but most useful way to teach the dog not to grab things from the ground.
When dog sees something on the ground and goes there to sniff it, you say "Leave it" calmly. If nothing happens, throw the leash (or something else) around him. NEVER EVER HIT THE DOG WITH IT! You only want to scare him a littlebit, just enough for him to run back to you, or to leave the thing there. This way, he also learns, that hehas to obey to what you say, even if he thinks you can't reach him. I tried this with my dog, and only had to do this twice on the first day, and a week later once again. Now she always leaves the food she finds on the ground.
If he still gets stuff, and becomes agressive if you want to take it from him, try the second option. Dog gets something, won't give it to you. Don't take care of it, just take out a thing he like really much. Like a ball or a really delicious treat. If he really wants to get it, he will need to drop the thing in his mouth. If dog drops the object, praise him a lot, give him the 'jackpot' he really loves, and see if this method works...
Hope I helped, and my English wasn't too confusing...
And I hope I answered to the questions you asked...