Я не верю, что это возможно, так как вам нужно установить несколько ссылок за один выстрел, а блокированные операции ограничены в их силе.
Например, возьмите операцию добавления - если вы вставляете узел B между A и C, вам нужно установить B-> next, B-> prev, A-> next и C-> prev в одном атомарном операция. Блокировка не может справиться с этим. Предварительная настройка элементов B даже не помогает, потому что другой поток может решить сделать вставку, пока вы готовите «B».
Я бы больше сосредоточился на том, чтобы в этом случае блокировка была как можно более мелкой, а не на ее устранении.