Preheat your oven to 400°F (200°C) and line a baking sheet with parchment paper.
In a skillet, heat the olive oil over medium heat. Add the chopped onion and cook until caramelized, about 10-12 minutes, stirring occasionally. Remove from heat and let cool slightly.
In a large mixing bowl, combine ground beef, breadcrumbs, egg, minced garlic, Parmesan cheese, thyme, oregano, salt, pepper, and the cooled caramelized onions. Mix until just combined; avoid overmixing.
Form the mixture into meatballs, about 1-1.5 inches in diameter, and place them on the prepared baking sheet.
Bake the meatballs in the preheated oven for 20 minutes or until cooked through, with an internal temperature reaching 160°F (70°C).
While the meatballs are baking, pour beef broth into a skillet and bring to a simmer over medium heat.
Once the meatballs are done, transfer them to the skillet with the broth and allow them to simmer for 5-10 minutes.
Top the meatballs with shredded Gruyère cheese, cover the skillet, and let the cheese melt for about 2-3 minutes.
Serve the meatballs hot, garnished with fresh parsley if desired, and enjoy.