Sim. Multi-Thread Function ( Look for input while scrolling ) <Maybe Fixed >

Like I explained - you get rid of the For:

int i = 16;
void loop(){
currentMillis = millis();
elapsedMillis1 = currentMillis - previousMillis1;
if (elapsedMillis1 >=holdTime1){  // holdTime1 = 5000UL for 1/2 second updates for example
previousMillis1 = previousMillis1 + holdTime1;  // all time elements are unsigned long

// now the broken up 'for' loop
lcd.setCursor(0,0);
lcd.print("Do This");
lcd.setCursor(i, 1);

//and 'manually' keeping track of where in the 'for' loop
i=i-1;
if (i > -16){i = 16;} // reset after the end

// make text scroll
} // end time check
// do other stuff, like update the array that holds the text to be displayed
elapsedMillis2 = currentMillis - previousMillis2;
if (elapsedMillis2 >= duration2){  // duration2 is some other timed event
previousMillis2 = previousMillis2 + duration2;
// do other timed, cyclic event
}
// do other stuff when not doing the timed, cyclic stuff
} // end loop