Yes, but it is trickier because there could be dups. I assume it is an INDEX. If not, then it the following code will be very slow.
SELECT @tsa := DATE_SUB(MIN(ts), INTERVAL 1 SECOND) FROM tbl;
Loop:
SELECT @tsz := ts FROM tbl LIMIT 100, 1; # reach for convenient stopper
# this will delete up to 100 rows (or more, if dup values for ts):
DELETE FROM tbl WHERE ts > @tsa
AND ts <= @tsz
AND ts < $cutoff
AND ...;
SELECT @tsa := @tsz;
$finished = SELECT @tsz > $cutoff FROM tbl;
if $finished, exit loop
(optional) sleep 1 second;
EndLoop.
(@tsa, @tsz could be done with PHP/Perl/etc variables or Stored Procedure locals instead of MySQL variables.)