Add ground beef, breadcrumbs, parmesan cheese,egg, salt, and pepper to a small bowl and mix together. Roll beef mixture into 12-16 2-inch size meatballs. Cover the meatballs and place them in the refrigerator for a half an hour to set up. Heat a large oven-safe skillet over medium heat with oil. Place the meatballs in the skillet and cook for about 8-10 minutes, turning a few times until the meatballs are mostly cooked through. The meatballs will cook more in the gravy. Once done, transfer the meatballs to a plate and cover to keep warm. Melt 4 tablespoons butter in the skillet over medium heat. Add sliced onions and sugar and cook for 10 minutes, stirring occasionally. Add chicken broth or white wine to deglaze the skillet. Cook for another 10-15 minutes until onions are caramelized. Turn to medium-high heat and add garlic and cook for a few minutes. Add flour and mix into onions; let cook for another minute. Slowly add beef broth to the skillet, mixing and scraping browned bits on the bottom of the skillet. Bring to a boil to thicken the gravy, about 2 minutes. Reduce heat to medium-low. Stir in the red wine, Worcestershire, salt, and pepper. Return meatballs to the skillet, cover and cook for about 10 minutes, or until meatballs are cooked through. Remove from heat. Sprinkle with gruyere or swiss, provolone, and parmesan cheese. Set the oven to low broil and place the skillet in the oven on the top rack. Broil for 2-3 minutes or until the cheese is melted and slightly browned. Garnish with fresh thyme and serve warm over rice, pasta or mashed potatoes.