Place cubed potatoes in a large pot of salted water, bring to a boil, and cook for 15-20 minutes until fork-tender.
In a large bowl, combine ground beef, breadcrumbs, egg, 1 teaspoon Worcestershire sauce, onion powder, salt, and pepper.
Form the meat mixture into 1.5-inch meatballs.
Heat a large skillet over medium-high heat and brown the meatballs on all sides; remove meatballs from the pan and set aside.
In the same skillet, melt 2 tablespoons butter and saute the sliced onions and mushrooms until browned and softened.
Sprinkle flour over the vegetables and cook for 1 minute, stirring constantly to form a roux.
Gradually whisk in the beef stock and remaining 1 teaspoon Worcestershire sauce; simmer until the gravy thickens.
Return the meatballs to the skillet, cover, and simmer for 10 minutes to reach an internal temperature of 160°F.
Drain the cooked potatoes and mash with 1/4 cup butter, milk, minced garlic, parsley, and thyme until smooth and creamy.
Plate the garlic herb mashed potatoes and top with the meatballs and a generous portion of mushroom gravy.