Cook onions, garlic, thyme, bay leaves, and salt in butter in a 4- to 5-quart heavy pot over moderate heat, uncovered, stirring frequently until onions are very soft and deep golden brown (~ 45 minutes)
Add flour and cook, stirring, 1 minute.
Add the wine and cook, stirring, 2 minutes.
Add the broth, water, balsamic vinegar, Worcestershire sauce, and pepper
Reduce the heat to low and simmer, uncovered, stirring occasionally (30 minutes)
While soup simmers, put oven rack in middle position and preheat oven to 350°F.
Arrange bread in 1 layer on a large baking sheet and toast, turning over once, until completely dry (~ 15 minutes)
Remove croûtes from the oven and preheat broiler.
Put soup crocks in a shallow baking pan. Discard bay leaves and thyme from soup and divide soup among crocks
Float a croûte in each.
Slice enough Gruyere (~ 6 oz total) with a cheese plane to cover tops of crocks, allowing ends of cheese to hang over rims of crocks, then sprinkle with Parmigiano-Reggiano.
Broil 4 to 5 inches from heat until cheese is melted and bubbly (~ 1 to 2 minutes)