Programmatically determine the lowest waiting time for character LCD display
The datasheet for the display, or the datasheet for the exact controller IC used in the display should be your reference for worst-case timing, taking all variations into account. 

Hitachi apparently no longer makes the HD44780, so you're going to be looking at datasheets for Sitronix ST7066U, or Sunplus  SPLC780D or Winstar WS0010 or maybe others, depending on the display (and maybe what they could get cheapest the week it was made). You'll also have to check what clock frequency they've used (typically set by an external resistor). 

Of course if you want your product to work with any HD44780-compatible display you'll have to use the slowest numbers of the lot (including the original). 



That's the timing. With a modern micro you may choose to fill the display using an interrupt routine so you don't tie up the processor with wasted cycles in wait loops. For example a 50MHz Silabs 8051 will have heck of a lot of clock cycles available in tens of microseconds even after the context switch. More modern cores may have DMA processors that can operate without any intervention by the main CPU.