In Do-more, no.
But you could easily implement it via logic by sticking some code in $tBottomOfScan task (assuming its time slice was 65535, or "do NOT yield". I will utilize MATH's TICKus() function (micro second resolution), but you could just as easily use TICKms() for just millisecond resolution
D99 contains the last scan's "count"
D98 contains the current scan's duration (calculated on the fly)
D100 will contain the desired "scan time" in micro seconds (e.g. 2000 would be 2ms)
C99 will be ON once the scan time reaches D100
REPEAT
MATH D98 "TICKus() - D99"
STRGE D98 D100
OUT C99
UNTIL C99
MATH D99 "D99 + D98" // this will be slightly more accurate than calling TICKus() again
You will want to stick this rung in $tFirstScan to initialize D99
MATH D99 "TICKus()"
Basically, the ladder scan will "hang" while the REPEAT/UNTIL executes. If the scan time exceeds the desired max, it will fall out immediately.