In a large skillet over medium heat, melt 1 tablespoon butter and swirl pan to evenly coat. Add onions and cook over medium heat, stirring occasionally until onions are a deep golden brown, about 20 minutes.
Increase heat to medium-high and stir mushrooms and garlic into onions. Cook an additional 2-3 minutes until mushrooms are lightly browned. Remove onions and mushrooms from pan and set aside.
In same skillet over medium heat, melt remaining 2 tablespoons butter then whisk flour in until smooth. Cook 1-2 minutes until flour-butter mixture is golden brown.
Slowly begin to add milk and cream, whisking constantly until sauce is smooth. Bring sauce to a simmer over medium heat and cook until slightly thickened. Remove from heat and add thyme and season with salt and pepper to taste.
Preheat oven to 375F and grease a 9x13 baking pan. Layer 1/3 of sliced potatoes in bottom of pan overlapping them slightly. Top with 1/3 cream mixture and 1/3 caramelized onions/mushrooms. Repeat layers two more times and sprinkle top with Swiss and Gruyere cheeses.
Cover pan tightly with tin foil and baked scalloped potatoes at 375F 40 minutes. Remove tin foil and continue baking an additional 25-30 minutes until potatoes are tender, bubbly and top is a deep golden brown. Let potatoes stand 15 minutes before serving warm. Enjoy!