Bring a large pot of lightly salted water to a boil. Add asparagus and boil until tender yet firm to the bite, about 4 minutes. Scoop asparagus out of the pot using a slotted spoon, rinse under cold water, and drain.
Bring water to a boil again. Add spaghetti and cook, stirring occasionally, until tender yet firm to the bite, about 12 minutes. Drain.
Meanwhile, heat olive oil in a large skillet over medium-low heat and cook shallot until soft and translucent, 1 to 2 minutes. Add prosciutto, increase heat to medium, and cook until prosciutto is crisp, 3 to 5 minutes. Pour in white wine and simmer until evaporated. Add cream and season lightly with salt and pepper. Add drained asparagus and bring to a boil.
Mix cooked spaghetti into the sauce in the skillet. Season with lemon juice. Serve with freshly grated Parmesan cheese.