In a bowl, combine milk and bread, ensuring bread is fully submerged. Allow it to sit for 10 minutes. Before squeezing moisture out of bread and placed in a large bowl. The milk can be discarded.
To the bowl, add ground beef, eggs, onion, parsley, thyme, salt and pepper. Mix well. Form about 15 (2-inch) meatballs with your hands and place in an oven-safe pan or skillet. Bake for 30 minutes.
As the meatballs bake, make the garlic mashed potatoes. Place potatoes in a saucepan and cover with water and add salt. Bring to a boil over medium-high heat. Reduce heat to a rolling boil and cook for about 20 minutes or until fork tender. In a separate saucepan, heat half-and-half over medium heat to a simmer – set aside. Once potatoes are done, drain water and mash together with half and half, garlic, parsley, parmesan and salt and pepper to taste. Cover and keep warm.
In a small bowl, whisk together wine and tomato paste. Set aside.
Remove meatballs from the pan (you will re-use the pan) and dust with flour, shaking off the excess.
In the same pan, melt butter and oil over medium-high heat. Add meatballs and brown on all sides (about 3 minutes).
Add wine mixture to the pan and bring to a boil. Cook until wine thickens (about 5 minutes).
Reduce heat to medium and add broth and mushrooms. Simmer for about 10 to 15 minutes, stirring often, until the gravy thickens. Season with salt and pepper to taste.
Serve the meatballs and mushroom gravy over the garlic mashed potatoes and garnish with chopped parsley.