Peel onions, and cut in half crosswise. Cook in a large Dutch oven in boiling salted water to cover 15 minutes or until almost tender. Cut a thin slice from bottom (rounded end) of each half, forming a base for onions to stand. Place onions in a lightly greased 13- x 9-inch baking dish.
Remove onion centers, leaving 1-inch-thick shells. Chop centers, reserving 1 cup chopped onion for the stuffing. Reserve remaining onion for another use, if desired.
Sauté spinach, garlic, and 1 cup chopped onion in hot oil in a large skillet over medium-high heat about 4 minutes or until spinach is wilted. Remove mixture from pan.
Melt butter in same skillet over medium heat. Stir in flour and next 3 ingredients until smooth. Stir in milk, and cook, stirring constantly, 2 to 3 minutes or until thickened. Reduce heat to low; stir in cream cheese, stirring until melted. Stir in spinach mixture. Spoon hot mixture evenly into onion halves.
Bake at 350° for 45 minutes. Sprinkle evenly with Parmesan cheese, and bake 15 more minutes or until golden and bubbly.