Preheat oven to 350°F.
Chop cauliflower into florets and place in a large pot. Add enough water to cover the cauliflower and heat until water is boiling. Reduce heat to medium-low and simmer until the cauliflower is tender, about 10-12 minutes. Drain and set aside.
While cauliflower is cooking, add oil to a large saucepan and heat over medium heat. Add chopped onion and sauté until tender and fragrant, about 3-4 minutes.
Add arrowroot powder, salt and pepper. Stir to combine for 3-4 minutes. Slowly add almond milk and bring mixture to a boil, whisking constantly until mixture is smooth and thick.
Remove from heat and add shredded cheese a little at a time, whisking in between, until fully melted.
Once all the cheese is melted add chopped cauliflower to sauce and stir to coat the cauliflower.
Once cauliflower is fully coated, transfer mixture to 9x13 baking dish and bake for 25-30 minutes until bubbly and top begins to brown. Broil for 3-4 min to brown the top more.
Remove from oven and let cool slightly before serving.