Fill a large pot with water and bring it to a boil. Add the brussels sprouts and cook for 5-6 minutes until slightly tender. Drain the water from the pot and run the brussels sprouts under cool water to stop the cooking process. Pat the brussels sprouts as dry as possible.
While the brussels sprouts are cooking, cook the minced garlic in the butter in a large saucepan until fragrant. Whisk in the flour and cook for 1 minute. Slowly add in the whole milk and cook for 5-6 minutes or until thickened, whisking to remove any flour clumps.
Remove the saucepan from the heat and stir in ½ of the gruyere cheese. Stir until melted and season with salt and pepper.
Pour the gruyere mixture over brussels sprouts and stir till they are evenly coated. Add the mixture to a large baking dish and sprinkle the remaining cheese on top. Bake for 20-25 minutes until nicely browned (I broiled the dish for the last 1-2 minutes).