mi spiace ma non puoi fare calcoli temporali quando devi utilizzare elementi che devono essere presenti

Non puoi aspettare n secondi incrociando le dita e sperando che nel frattempo le celle si siano caricate, il tempo varia in base a diversi fattori che non puoi controllare

L'unica è spezzettare la tua tabella in tante sottotabelle ad esempio

codice:
<head>
<script>
function applyReplacement(idtbl) {
  var a = document.getElementById(idtbl).getElementsByTagName('td');
  for (var i = 0; i < a.length; i++){
     if (a[i].innerHTML == "testo") a[i].innerHTML = "ciao";
  }
}
</script> 
</head>

<body>
...

<table id="tabella1">
  <td>...</td>
  <td>...</td>
  ...
</table>
<script>
applyReplacement('tabella1');
</script>


<table id="tabella2">
  <td>...</td>
  <td>...</td>
  ...
</table>
<script>
applyReplacement('tabella2');
</script> 

....
e così via.

Edit: utilizzando opprtunamente la proprietà CSS 'table-layout' il rendering dovrebbe essere più efficiente. http://www.quackit.com/css/css_table-layout.cfm