Make sauce: Drain tomatoes, reserving juice in a large bowl. Crush tomatoes with your hands and add to juice.
Cook onions in oil in pot over medium heat, stirring occasionally, until softened, about 10 minutes. Add garlic and cook, stirring occasionally, until softened, about 2 minutes. Stir in tomatoes with their juice, 2 teaspoons salt, and 1/2 teaspoon pepper. Simmer sauce, uncovered, stirring occasionally, until slightly thickened, about 1 hour.
Make meatballs while sauce simmers: Cook onions in extra-virgin olive oil in a 12-inch heavy skillet over medium heat, stirring occasionally, until softened, about 10 minutes. Add garlic and cook, stirring occasionally, until softened, about 3 minutes. Transfer to a large bowl to cool.
Pulse bread in food processor until crumbs form. Stir together cooled onion mixture, bread, eggs, parmesan, parsley, oregano, lemon zest, salt and pepper until combined. Add meats to bread mixture, gently mixing with your hands until just combined (do not overmix).
Form meat mixture into about 35 (1 1/2-inch) balls with dampened hands, arranging meatballs on 1 large baking sheet or in shallow baking pan.
Heat olive or vegetable oil (1/2 cup) in a 12-inch heavy skillet (preferably nonstick) over medium-high heat until hot but not smoking, then brown meatballs in 2 or 3 batches (without crowding), turning frequently, about 5 minutes per batch. Return to baking sheet
Add meatballs to sauce and gently simmer, covered, stirring occasionally, until cooked through, 30 minutes.
Prepare pasta:Cook spaghetti in boiling salted water (3 tablespoon salt for 6 qt water) until just al dente, draining and tossing each batch with some of sauce in a large serving dish.
Serve with meatballs, remaining sauce, and grated cheese.