Add olive oil in a large skillet over medium heat.
Add garlic and cook for 30 seconds.
Add onions, season with salt and pepper, and cook for about 5 minutes.
Reduce heat to low and cook for 30 minutes. If you keep your heat low you can cook for longer to extract more an even more sweet flavor from the onions. You do not want to brown your onions.
Add the beer and simmer for 5 minutes.
Add the thyme and vinegar and gently simmer for 10-15 minutes. Until the mixture is reduced by half.
Add the beef stock and simmer until warm and all the flavors have combined - approximately 10 minutes.
Preheat the broiler.
Put soup in an ovenproof bowl and top with cheese. Broil until cheese melts and starts to brown.