Heat olive oil in a large skillet over medium heat; cook and stir onion and garlic until onion is tender and translucent, about 5 minutes. Stir in crushed tomatoes, tomato paste, red wine, Italian seasoning, sugar, garlic powder, and garlic salt. Season with salt and black pepper. Bring to a boil, reduce heat to medium-low, and continue simmering while preparing meatballs.
Mix ground beef, egg, bread crumbs, mozzarella cheese, and parsley in a large bowl. Roll walnut-size meatballs and place in the simmering sauce, making sure sauce covers entire meatball. Increase heat to medium and simmering until meatballs are no longer pink in the center, about 40 minutes, turning meatballs once about halfway through.
Bring a large pot of lightly salted water to a boil. Cook spaghetti in the boiling water, stirring occasionally until cooked through but firm to the bite, 8 to 10 minutes. Drain.
Serve meatballs and sauce over spaghetti with a sprinkle of Parmesan cheese.