In a large bowl, combine ground beef, egg, Parmesan, heavy cream, grated onion, garlic, Dijon, Worcestershire, salt, pepper, and thyme. Mix gently with your hands or a fork until just combined. Don’t overwork the meat or the meatballs can turn dense.
Form 16–18 meatballs, about 1 to 1.25 inches in diameter. Place them on a plate or sheet pan.
Heat oil in a large skillet over medium-high.
Add meatballs in a single layer (work in batches if needed). Sear until browned on two sides, about 2–3 minutes per side. Transfer to a plate; they’ll finish cooking in the sauce.
Reduce heat to medium.
Add butter to the same pan. Stir in mushrooms and a pinch of salt. Cook, stirring occasionally, until mushrooms release liquid and turn golden, 6–8 minutes.
Add garlic and cook 30 seconds until fragrant.
Pour in beef broth, scraping up browned bits. Simmer 2 minutes to reduce slightly.
Stir in heavy cream, Dijon, Worcestershire, and thyme. Bring to a gentle simmer.
Season with a pinch of salt and pepper.
Return meatballs and any juices to the pan. Cover and simmer on low 6–8 minutes, or until meatballs reach 160°F (71°C) internally.
Turn heat to low. Sprinkle in shredded Swiss cheese, stirring until melted and smooth.
If the sauce seems thick, add a splash of broth or cream. If thin, simmer uncovered 1–2 minutes to reduce.
Taste and adjust seasoning. Garnish with chopped parsley or chives.
Serve hot over cauliflower mash, zoodles, or sautéed greens.