As mzjn stated, the screen tag was a problem. After reading the linked resource, the final template that works for me in this case, and produces output similar to the html look, is this:
<xsl:template match="emphasis[@role='red']" mode="latex.programlisting">
<xsl:param name="co-tagin" select="'<:'"/>
<xsl:param name="rnode" select="/"/>
<xsl:param name="probe" select="0"/>
<xsl:param name="content">
<xsl:apply-templates/>
</xsl:param>
<xsl:text><t>\colorbox{red}{</xsl:text>
<xsl:copy-of select="$content"/>
<xsl:text>}</t></xsl:text>
</xsl:template>
which leads to the following latex output:
\begin{lstlisting}[firstnumber=1,escapeinside={<t>}{</t>},moredelim={**[is][\bfseries]{<b>}{</b>}},moredelim={**[is][\itshape]{<i>}{</i>}},]
0240h: 00 20 <t>\colorbox{red}{00}</t> 21\end{lstlisting}
Maybe it would be better to add another moredelim to lstlisting than using the escapeinside, but with this solution, this question is answered for me.