In a large pot of salted water, cook the pasta according to package directions. Drain and set aside.
For the meatballs: Heat butter in sauté pan over medium heat. Add the finely chopped onions, salt, pepper, allspice and nutmeg. Sauté for 3 minutes, stirring often. Add the minced garlic and cook for an additional 2 minutes.
Place the sourdough bread in a large bowl. Mix in the onion mixture along with the milk. Mix until fully combined. Mixture will resemble a thick paste. Mix in the beef until evenly combined. Do not overmix or your meatballs will be tough. Form into 1-inch balls (dampening your hands with water will help prevent the meat from sticking to them).
Heat the olive oil in a skillet or non-stick pan over medium heat. Add the meatballs in batches not to overcrowd the pan and brown on all sides. Set the meatballs aside while you make the gravy.
For the gravy: In the same pan, melt the butter over medium heat. Add the flour and whisk constantly for 2 minutes until smooth. Whisk in the beef broth, Worcestershire, and thyme. Stir in the heavy cream and the meatballs. Cover with a lid, reduce the heat to a low simmer for about 15 minutes.
Remove the lid and stir in the pasta. Taste and season with salt and pepper. Simmer for 2 minutes. Serve immediately with bread.