I had the similar situation to delete many nodes of high degree. I had to use apoc function like this:
call apoc.periodic.iterate(
"match (n:highDegreeNode)",
"detach delete n",
{batchSize:1, parallel:true}
)
You must test to select batchSize since it takes much time when you delete a single node having many relations.