Begin boiling water to cook the rigatoni according to the instruction on the box for al dente. However, only cook it for half the time, called parcooking. The rigatoni will be added to the rest of the dish and continue to cook in the sauce.
In a large skillet or pot like a Dutch Oven, heat the olive oil and 1 tablespoon of butter over medium heat. Add the shrimp and season with salt and pepper. Cook until both sides of the shrimp are just pink. It's ok if they are a little undercooked as they will cook a little more at the end. Remove the shrimp and set aside on a plate.
Add the onions and season with salt and pepper. Cook until soft, about 3-5 minutes.
Next, add in the spinach and the white beans. Let the spinach wilt down, about 1-2 minutes. Then add in the garlic and stir for about 2 minutes.
Pour in the chicken stock, white wine, and marsala wine. Scrape up and bits stuck to the bottom. Let the liquid reduce by about half.
Now add in the heavy cream and parmesan cheese. Mix the cornstarch with a little water to make a slurry and pour that in, being sure to mix well. Add in the remainder of the butter.
Mix well and add in the cooked pasta. Let the pasta cook for about 3-4 minutes.
Stir the shrimp back in along with the fresh parsley. Let the shrimp warm up for about a minute or 2 and serve.