In a small bowl, soak the cubed crustless bread with whole milk. Let it sit for about 10 minutes until the bread is mushy.
Melt 4 tablespoons of unsalted butter in a large skillet over medium heat. Add the diced onions and cook gently, stirring occasionally, until golden and caramelized—about 10 minutes. Remove from heat and set aside.
In a large mixing bowl, combine ground beef, soaked bread, breadcrumbs, 2 large eggs, Dijon mustard, salt, and freshly cracked pepper. Add the cooled sautéed onions. Mix gently until just combined, avoiding overmixing.
Shape the mixture into small, evenly sized meatballs about 1 to 1.5 inches in diameter. Heat cooking oil in skillet over medium-high heat. Brown meatballs in batches, turning occasionally for even crust. Remove and set aside.
In the same skillet, melt remaining 4 tablespoons of butter over medium heat. Sprinkle in flour and whisk continuously to create a roux. Cook 2-3 minutes until golden and nutty.
Gradually whisk in beef stock, stirring constantly to avoid lumps. Stir in soy sauce and heavy whipping cream. Let sauce simmer gently for 5 minutes until thickened. Adjust seasoning with salt and pepper.
Return browned meatballs to skillet, nestling them into the sauce. Cover and simmer on low heat for 10-12 minutes, turning once or twice, until cooked through and sauce is creamy.
Serve Swedish Meatballs hot over mashed potatoes, buttered egg noodles, or a fresh green salad. Enjoy!