Preheat oven to 375°.
Cut a 3-inch tip from each asparagus spear, reserving the stalks for another use. Cut asparagus tips into 1/2-inch pieces.
Heat oil in a nonstick skillet over medium-high heat. Add onion; saute for 5 minutes or until tender, stirring frequently. Add asparagus; cover and cook 4 minutes, stirring once. Remove from heat, and set aside.
Coat 6 (10-ounce) custard cups or ramekins with cooking spray; place in a large baking pan. Place bread cubes evenly into custard cups. Top evenly with asparagus mixture, ham, and cheese. Combine milk and remaining ingredients, stirring with a whisk. Pour evenly into custard cups; let stand 20 minutes. Add hot water to pan to a depth of 1 inch. Cover and bake at 375° for 30 minutes. Uncover and bake an additional 15 minutes. Let stand 10 minutes before serving.