ho fatto un esempio semplificato
codice:
<%
function ReplaceRegExp(Testo, ModelloRegExp, ReplaceTesto)        
     If Testo <> ""  then
       Dim ObjRegex
       Set ObjRegex      	= New Regexp
       ObjRegex.Pattern      	= ModelloRegExp
       ObjRegex.Global      	= True
       ObjRegex.Ignorecase     	= True
       ObjRegex.Multiline      	= True
       ReplaceRegExp     	= ObjRegex.Replace(Testo, ReplaceTesto)
     End if  
     Set ObjRegEx               = nothing 
End function

Buscalivre = "me nero"
arrSearch = Split(Buscalivre," ")
esempio= "mercedeses nero con altre parole in mezzo che si ripetono come per esempio la parola nero"

Response.Write(ReplaceRegExp(esempio,"(.?)" & "(" & Join(arrSearch,"|") & ")(.?)","$1<span style=""color:red"">$2</span>$3"))
%>
output
mercedeses nero con altre parole in mezzo che si ripetono come per esempio la parola nero
praticamente esempio č la stringa che contiene il testo da colorare, il pattern usa regexp per mettere tra or | le parole della ricerca e il testo viene colorato di rosso

Occhio non ho contemplato un controllo su arrSearch

un esempio su come riadattarlo al tuo caso
codice:
patternSearch = "(.?)" & "(" & Join(arrSearch,"|") & ")(.?)"
patternReplace = "$1<span style=""color:red"">$2</span>$3"
....
....
....
....
<td><%=ReplaceRegExp(estrapola("modello"),patternSearch,patternReplace )%></td>
che ne pensi?