Preheat the oven to 375 degrees . In a large pot of boiling salted water, cook the asparagus until just tender, about 2 minutes. Using a slotted spoon, transfer the asparagus to a strainer. Return the water to a boil, add the lasagna and cook until tender, about 8 minutes. Drain and transfer to a platter.
Meanwhile, in a medium saucepan, melt the butter over medium heat. Add the onion and cook, stirring occasionally, until softened, about 5 minutes. Stir in the flour and cook for 2 minutes. Slowly whisk in the milk and bring to a boil over medium-high heat. Lower the heat and simmer, whisking constantly, until thickened, 1 to 2 minutes. Remove from the heat and stir in half of the parmesan and half of the nutmeg; season with salt and pepper.
Spread about 1/3 cup of the cheese sauce in a 9-by-13-inch baking dish. Layer 4 noodles on the sauce and top with 3/4 cup cheese sauce. Sprinkle a quarter of the ham, a quarter of the asparagus, and 3 tablespoons of the remaining parmesan over the sauce. Repeat the layering process three more times. Top with the remaining noodles, cheese sauce, parmesan and nutmeg. Cover with foil and bake until heated through, about 30 minutes. Uncover and cook for 10 minutes more. Let stand for 15 minutes before serving.