Played through this like 7-8x to get it right.
The demon has a set distance in which it can possess your characters. It will possess either on its own move or if you attack it within that distance. That distance is pretty damn big, but it's JUST below the max distance of casters with the additional 2m range talent.
I found teleporting it into a corner, and using summons to block its path out (didn't have a summoner, but necro and/or cat/condor summons worked), while keeping everyone at a large enough distance did the trick. Killed the demon with the summons (close range melee, can not be possessed by the demon) and casters (at max casting range), and it has decent loot.
Think smoke or anything that blocks visibility will also help. Didn't try, but I'm sure Blessed would help here too. Also I couldn't ever deal it enough damage in 1 hit to break its shields, while disabling it, so not sure if that'd work either.
Luckily the dwarf for me was decent in the fight, staying invisible and healing/magic shielding my characters.