Combine 1/4 cup olive oil, lemon juice, salt, and pepper in a large resealable plastic bag. Gently squeeze ingredients in the bag to combine. Add shrimp. Remove as much air as possible, seal, and move shrimp around in the bag to coat in the marinade. Place in a tray or plate so shrimp are in a single layer. Marinate in the refrigerator for 30 to 45 minutes.
Bring a large pot of lightly salted water to a boil. Cook angel hair pasta in the boiling water, stirring occasionally, until tender yet firm to the bite, 4 to 5 minutes. Drain.
Preheat an outdoor grill for medium-high heat. Place a heat-proof skillet on one side of the grill to heat with the grill. Thread shrimp onto metal skewers.
Place shrimp skewers onto the hot grate and grill until the shrimp turn white and opaque, 2 to 3 minutes per side. Remove from the grill.
Meanwhile, pour 2 teaspoons olive oil into the hot skillet and cook onion, stirring frequently, until softened, 2 to 3 minutes. Add tomatoes, garlic, and red pepper flakes; cook and stir for 1 to 2 minutes. Pour in wine and allow to reduce, about 4 minutes. Stir in cream. Cook and stir for 1 minute. Season with salt and pepper to taste. Add cooked pasta and shrimp to the skillet and stir to combine. Sprinkle with fresh parsley and serve.