To make the sauce, in a 9 quart or larger dutch oven, sauté the onion in oil over medium-high heat until translucent and beginning to brown, about 5 minutes. Add garlic and sauté briefly, without burning.
Add all other ingredients for the sauce except fresh parsley and stir, bringing to a low boil. Reduce to a steady simmer and let cook, uncovered for about 3 hours or until you've reached desired consistency, stirring occasionally. Taste and adjust seasoning regularly along the way.
While the sauce is reducing, mix all ingredients for the meatballs in a large bowl, and mix together without overworking. In the palms of your hands, form the mixture into roughly a 3-inch diameter meatball. Set formed meatballs aside until ready to cook.
Brown the meatballs either in a foil-lined sheet pan in a 400-degree oven for about 20 minutes, or in batches in a sauté pan over medium-high heat. Once browned, set aside on paper towel lined plate to remove excess grease. They do not need to be cooked all the way through.
Remove thyme stems, bay leaf, and any remaining parmesan rind. If using whole tomatoes, break them apart with a wooden spoon or masher once they are softened from the heat.
In the final 30 minutes of cooking the sauce, add in the meatballs and torn or chopped parsley leaves, and stir to distribute throughout the sauce.
Meanwhile, fill a large stock pot with water about 3 inches from the rim, generously salt the pasta water, and bring it to a boil. Add the pasta, stir and reduce the heat to a quick simmer. Cook according to the package directions, testing for doneness at one-minute intervals near the suggested cooking time, until al dente.
With a pasta fork, plate the cooked pasta immediately and top with sauce and meatballs. Garnish with fresh parsley and freshly grated parmesan.
This recipe can easily be halved, but it’s so good you won’t want to. Pile any leftovers on a hoagie roll along with some provolone for a mouthwatering meatball sub.