Preheat your oven to 400°F (200°C). Line a baking sheet with parchment paper.
In a large mixing bowl, combine the ground beef, ground pork, finely chopped onion, garlic, breadcrumbs, Parmesan cheese, egg, salt, pepper, thyme, and parsley. Mix well until ingredients are fully combined.
Shape the mixture into meatballs, about 1 ½ inches in diameter, and place them on the prepared baking sheet.
Bake the meatballs in the preheated oven for about 20 minutes, or until they are cooked through and browned.
While the meatballs are baking, heat olive oil in a skillet over medium heat. Add the sliced onions and sauté for about 15-20 minutes, stirring occasionally, until they are caramelized and golden brown.
In a large saucepan, pour in the beef broth and bring it to a simmer. Add the caramelized onions and stir.
When the meatballs are done baking, add them to the saucepan with the broth and onions. Let them simmer together for about 10 minutes to absorb the flavor.
To serve, ladle the meatballs and broth into bowls. Top with shredded Gruyère cheese. Optionally, you can place them under a broiler for a few minutes to melt the cheese.