Heat olive oil in a large pan over medium heat. Add onions and season with salt and pepper, to taste. Reduce heat and cook for 30 minutes, stirring occasionally, until the onions become nicely golden brown and caramelized. Transfer onions to a bowl and set aside.
In the same pan that you used to caramelize the onions, add the garlic and the spinach, a few handfuls at a time, stirring to wilt to fit it all in the pan. Season with salt and pepper to taste. Cook, stirring occasionally until the spinach is completely wilted and cooked down.
Stir butter, cream cheese, and heavy cream into the pan of spinach.
Continue cooking until the cream cheese melts into the spinach and everything becomes nice and creamy.
Remove from heat and stir in the parmesan cheese. Taste and adjust seasonings.
Transfer the creamed spinach into a serving bowl and top with caramelized onions. Garnish with a little fresh chopped parsley for color and freshness. Enjoy!