Preheat oven to 400 degrees F and line a large baking sheet with parchment paper (note - for this recipe you may need to cook the meatballs in 2 batches).
In a large bowl mix together all of the ingredients for the meatballs (the ground chicken, onion, cheeses, bread crumbs, garlic, eggs, thyme, salt, and black pepper) until fully combined. Shape into approximately 32 meatballs, then place on your prepared baking sheet.
Bake until golden and fully cooked, approximately 20 minutes, or until the internal temperature registers 160 degrees F as measured with a digital meat thermometer. Remove from the oven and set aside.
As the meatballs cook, make the sauce. Heat the olive oil in a large skillet or Dutch oven set over medium heat. Add the onions and mix well to coat in oil. Allow the onions to cook, stirring occasionally, for 5-10 minutes.
Add the salt and butter. Continue to cook, stirring as needed to prevent burning, until the onions are very soft and golden-brown (see notes).
Add the garlic and continue to cook for 1 minute. Then add the dry sherry (or dry white wine), scraping up any bits that may be stuck on the bottom of the pan. Allow the alcohol to cook until it has reduced by half. Add the beef broth, fresh thyme, and season with salt and pepper. Bring to a boil, then reduce heat to a simmer. Cook until slightly thickened, 5 minutes.
Add the cooked meatballs to the skillet and sprinkle with the shredded Gruyère cheese. Cover with a lid and cook until the meatballs are warmed through and the cheese is melted approximately 5-10 minutes.
Garnish with fresh thyme, if desired, and serve warm with fresh bread or creamy mashed potatoes. Enjoy!