Preheat the oven to 375°F and bring a large pot of water to a boil.
Butter a 9x13 baking dish.
Carefully add the cut cauliflower to the boiling water. Stir it around with a wooden spoon. Simmer for just 5 minutes then immediately drain. Set aside.
12 cups cauliflower
Melt 2 tbsp of the butter in a large saucepan, then add the onion and cook slowly over low heat until soft, 4 to 5 minutes.
5 tbsp unsalted butter, 1 medium onion
Add the thyme and then stir in the flour. Cook, stirring often, for 2 minutes.
1 tbsp thyme, 3 tbsp all-purpose flour
Slowly add the milk and cream, and whisk until all lumps are gone. Stir with a wooden spoon until thickened, about 5 to 15 minutes (heat the milk and cream before adding to expedite this process). The bechamel sauce should be slightly thicker than the consistency of gravy.
3 cups whole milk, 2 cups heavy cream
Stir in the salt, pepper, and lemon juice. Next, add 1 cup of the cheese and stir until melted.
3 tsp Kosher salt, 1 tsp black pepper, 1 tbsp lemon juice, 2 cups Gruyère cheese
Transfer the cauliflower to the prepared dish and pour the sauce over the top.
Melt the remaining 2 tbsp butter and combine with the bread crumbs and remaining cup of cheese in a medium bowl.
1½ cups panko
Top the cauliflower mixture with the breadcrumb mixture.
Bake, uncovered, for 30 to 45 minutes, until bubbly and golden on top.
Let rest for at least 10 minutes before serving.