Preheat the oven to 350℉. Spray a 9x13-inch baking dish with nonstick spray.
Cook the spaghetti according to package instructions, just until al dente (a little firm to the bite). Drain, rinse and set aside.
While the pasta is cooking, heat the oil in a large skillet over medium-heat. Add the onion and garlic and cook until the onions are softened- about 5 minutes. Add the ground beef and season lightly with salt and pepper. Cook until no longer pink, about 8 minutes. Tilt the pan and spoon out the fat to discard. Add the marinara sauce to the beef along with the cream cheese. Simmer for 10 minutes, until the cream cheese has melted into the sauce. Turn off the heat, and stir in the cream and the cooked spaghetti.
Transfer the spaghetti with meat sauce to the prepared baking dish. Sprinkle the mozzarella and Parmesan cheeses on top. Bake until the cheese is melted and the casserole is piping hot- 20 to 25 minutes. Sprinkle parsley on top and serve.