Arrange one oven rack 6 to 8 inches from the broiler and a second rack in the middle of the oven. Heat the oven to 400°F. Line a rimmed baking sheet with parchment paper or a silicone baking mat.
Halve and thinly slice yellow onions. Pick the leaves from fresh thyme until you have 2 tablespoons. Mince garlic cloves. Grate Gruyère cheese.
Combine garlic, thyme, Gruyère cheese, breadcrumbs, milk, egg, Worcestershire sauce, kosher salt, and black pepper in a large bowl. Add ground beef and gently mix.
Form the mixture into 32 to 34 meatballs. Place on the baking sheet.
Bake until browned and cooked through, about 15 to 20 minutes or until the internal temperature reaches 165°F.
Melt butter in a skillet over medium heat. Add onions, thyme, kosher salt, and black pepper. Cook until onions are deep golden-brown.
Sprinkle flour over the onions and stir until incorporated. Add wine and scrape up browned bits. Cook until wine has evaporated.
Add beef broth and whisk to combine. Bring to a boil and cook until the sauce thickens, about 6 to 8 minutes. Stir in vinegar.
Transfer the meatballs to the sauce and gently stir to coat. Sprinkle with remaining Gruyère cheese.
Broil until the cheese is melted and bubbly, about 3 to 4 minutes. Garnish with thyme and serve with crusty bread.