These fancy sandwiches can seem like a lot of work, but once you've made the sauce, putting together two big sandwiches and cutting them into individual rectangles means it's no trouble at all to serve enough for a crowd.
Starting from the bottom of the loaf, slice bread horizontally into six 1/2-inch-thick rectangles (about 4-by-8 1/4-inches each); discard rounded top. Toast each bread slice in a toaster until pale gold.
Melt butter in a medium saucepan over medium-high heat. Whisk in flour. Gradually add milk, whisking constantly. Bring to a boil, continuing to whisk. Remove from heat and stir in Parmesan. Let bechamel cool completely. Season with salt and pepper. Divide between 2 bowls.
Spread half the bechamel from 1 bowl on 1 slice of bread. Top with 2 slices ham and 3 slices Gruyere. Top with 1 slice of bread, then spread remaining bechamel from bowl over top. Set sandwich aside. Repeat layering with ham and Gruyere, and top with 1 slice of bread. Repeat with remaining bowl of bechamel, bread slices, ham, and Gruyere. Wrap each sandwich in plastic wrap and refrigerate for 1 hour.
Preheat oven to 375 degrees. Trim crusts from sandwiches. Cut each sandwich in half lengthwise, then crosswise 5 times to form 10 rectangles from each. Skewer each sandwich. Transfer to a baking sheet and warm in oven until cheese melts, 6 to 8 minutes. Serve immediately.
Assembled sandwiches can be refrigerated overnight. Cut and warm in oven just before serving.