Heat olive oil in a large skillet over medium-high heat.
Add the onions and generously season with salt. Cook for about 30 minutes or until the onions are caramelized and jammy, stirring occasionally. Pour in balsamic vinegar to add some additional flavors and add 2 thyme sprigs, cook for a minute. Transfer to a plate. Allow to cool slightly.
Preheat the oven to 410° F (210° C).
Take half of the cooled caramelized onion and chop.
In a large bowl combine the ground chicken, 1/2 cup shredded mozzarella (or gruyere cheese), bread crumbs, egg, garlic, parsley, thyme, salt and pepper. Add in the chopped caramelized onions. Mix just until combined. Do not over mix!
Shape into meatballs (I made 14 meatballs about 2-inches in diameter). It is easy to form the mixture into meatballs if your hands are wet. Place the meatballs into the same skillet ( the one you used to cook onions). Spray the meatballs with cooking oil spray generously and bake for 12 minutes.
Remove the skillet from the oven. Whisk together the beef broth ( or chicken broth) with corn flour in a small bowl. Pour the mixture into the skillet with the meatballs, add in the remaining caramelized onions and top with the remaining mozzarella ( gruyere ) cheese and thyme sprigs.
Bake for 15 minutes or until cooked through. The internal temperature will be 165 degrees F ( 74 C).
Serve immediately with crusty bread.