Heat oil in a large pan over medium-high heat. Add onions then salt. Sauté until onion is clear, then turn heat down to medium and add garlic. Sauté another minute and transfer contents of pan to a large pot. Add the rest of the sauce ingredients to the pot and bring to a boil slowly over medium heat. Once boiling, reduce heat to low and simmer.
Combine meatball ingredients in a large bowl and form into about golf ball sized balls (I get around 22-24 meatballs). Brown the meatballs in the large pan, over medium-high heat; in two batches. As the meatballs have browned all over, pluck them from the pan and drop them into the pot.
Once all of the meatballs are in the sauce and the sauce is simmering again, continue simmering for another hour, uncovered except for a splatter guard. Stir the sauce every 15 minutes or so.
Serve over spaghetti with some fresh shredded/grated parmesan cheese.