Preheat the oven to 350 degrees F. and generously grease a 2.5-quart casserole dish with butter or olive oil spray.
Coarsely chop the cabbage into 1" bite-sized pieces, removing the hard stem and core. Then dice the onion (or shallots).
Heat 1 tbsp butter in a large deep non-stick skillet over medium heat.
Add the chopped cabbage and onion (or shallots) to the skillet and cook for 10 minutes, stirring often, until partially cooked down and softened.
In a large bowl, whisk together the melted butter, cream, eggs, salt, and pepper. Add the cabbage and onion and toss well to mix.
Transfer the cabbage mixture to the greased casserole dish, cover with foil, and bake for 30 minutes.
Uncover, cook for 10 minutes, then sprinkle the fresh grated parmesan cheese on top and bake for 10 minutes more until lightly golden around the edges. (Total bake time = 50 minutes).