2 tbsp fresh thyme leaves
6 oz Gruyère cheese; grated
1 1/4 tsp kosher salt
1/2 tsp freshly ground black pepper
4 tbsp butter
2 tbsp all-purpose flour
1/2 cup dry white wine (single serve bottle)
32 oz beef broth
1 tsp balsamic or sherry vinegar
Arrange oven rack 8-10 inches from the broiler. Heat the oven to 400°F. Line a rimmed baking sheet with parchment paper.
Place meatballs on pan and bake on the middle rack until browned and cooked through or until an instant-read thermometer inserted into the center of a meatball registers 165°F, about 20 minutes. When done, remove from oven and set aside.
Melt butter in a broiler-safe, heavy-bottomed skillet over medium low heat. Add the onions, 1 tablespoon of the thyme, kosher salt and black pepper. Cook, stirring frequently with a wooden spoon and reducing the heat if the onions start to burn, until the onions have reduced by over half, are very soft, and deep golden-brown, 25 to 30 minutes.
Sprinkle flour over the onions and stir until the flour is completely incorporated and leaves a film on the bottom of the skillet and begins to brown, about 1 minute. Add dry white wine and scrape up any browned bits on the bottom of the skillet. Continue to stir until the wine is evaporated, about 1 minute.
Add 20-30 oz of beef broth and whisk to combine. Increase the heat back to medium if it was lowered while cooking the onions. Bring to a boil and cook until the sauce thickens enough to coat the back of a spoon, 6 to 8 minutes. Remove the pan from the heat. Add balsamic or sherry vinegar and stir to combine. Taste and season with more kosher salt and black pepper as needed.
Set the oven to broil. Transfer the meatballs to the sauce. Gently stir to coat the meatballs then spread into an even layer. Sprinkle with the Gruyère cheese.
Transfer the skillet to oven and broil until the cheese is melted, bubbly, and browned in spots, 3 to 4 minutes. Garnish with the remaining thyme leaves and serve with crusty bread, if desired.