Place cubed potatoes in a pot of salted water, bring to a boil, and cook for 15-20 minutes until tender.
While potatoes cook, combine ground beef, breadcrumbs, egg, minced onion, garlic, salt, and pepper in a large bowl and mix until just incorporated.
Form the meat mixture into 1.5-inch balls.
In a large skillet over medium-high heat, melt 1 tablespoon of butter and sear the meatballs until browned on all sides, then remove them from the pan.
In the same skillet, melt 2 tablespoons of butter and whisk in the flour to create a roux, cooking for 2 minutes until light brown.
Gradually whisk in the beef broth and Worcestershire sauce, ensuring no lumps remain while scraping the bottom of the pan for flavor.
Return the meatballs to the skillet, add thyme, reduce heat to low, and simmer for 10-12 minutes until the gravy has thickened.
Drain the cooked potatoes and mash them thoroughly with the remaining butter and milk until creamy and smooth.
Plate a portion of mashed potatoes, top with meatballs, and ladle the savory brown gravy over the dish.