No puede especificar el desplazamiento en DELETE
de LIMIT
cláusula.
Entonces, la única forma de hacerlo es reescribir su consulta a algo como:
DELETE FROM `chat_messages` WHERE id IN (select id from (select id
FROM `chat_messages`
ORDER BY `timestamp` DESC
LIMIT 20, 50) x)
Suponiendo que tiene la clave principal id
columna
UPD :debe implementar el anidamiento doble para engañar a mysql, ya que no permite seleccionar de la tabla modificada actualmente (gracias a Martin Smith)