Preheat oven to 425 degrees F. Line a baking sheet with a silicone mat or parchment paper. Set aside.
Place ground beef, egg, bread crumbs, Parmesan, salt, Italian seasoning, pepper, garlic powder, onion powder, oregano, and pepper flakes into a medium mixing bowl. Using your hands, combine meatball ingredients until evenly incorporated into the beef.
Divide beef mixture into quarters. Then divide each quarter into 4 portions. Roll each portion into a ball and place on your prepared baking sheet.
Bake for 10 to 12 minutes until no longer pink inside and browned on the outside. Remove from oven and let rest.
Place a large deep-sided skillet over medium heat. Add butter and oil and heat until butter is melted.
Add onions and garlic. Cook for 3-5 minutes until onions are softened and garlic is fragrant. Add juice from tomato can to skillet. Use your hands to break up the tomatoes before adding them to the skillet. (Be careful! They'll squirt.) Then add in balsamic vinegar, sugar, oregano, salt, pepper, and red pepper flakes. Stir to combine. (This sauce is a bit spicy, you can skip the pepper flakes if you don't want the heat.)
Bring sauce to a simmer and cook for 15 minutes, stirring occasionally.
Add meatballs to skillet with tomato sauce and simmer over medium heat for 10 minutes.
While that's going on, turn your oven to broil. In a small bowl, mix together softened butter, garlic powder, and Italian seasoning until evenly combined.
Open sandwich rolls and place onto a baking sheet with the insides facing up. Spread garlic butter mixture evenly over the rolls, using all the butter. Place rolls under broiler for 2 to 3 minutes until golden around the edges. Remove from oven.
Place garlic bread rolls in a 9-inch x 13-inch baking dish. Spoon 4 meatballs into each roll. Add a little extra sauce and 1 slice of provolone cheese (cut in half) on top of the meatballs.
Broil sandwiches until the cheese is golden and bubbly. Remove from oven and sprinkle with chopped parsley. Serve warm.