Heat oil in a large nonstick skillet over medium-high heat; sauté onion and shallot, stirring until translucent (about 4 minutes). Reduce heat to medium; continue to cook until golden (about 4 minutes).
Preheat broiler to low. Place soup in a large saucepan; bring to a boil. Stir in sautéed onion, thyme, vinegar, and black pepper; reduce heat to low. Cover and keep warm.
Ladle soup into 4 broiler-safe bowls; top each with 1 piece of bread and 1/4 of cheese. Place under broiler for 3 minutes or until cheese is bubbly and golden. If you don't have broiler-safe bowls, use oven-safe bowls, and bake at 350° for 5 minutes or until cheese is melted. Serve immediately, being careful not to directly touch hot bowls.