Podrías usar claves dentro del texto para generar las pausas, en este caso, la clave de pausa es el guión bajo (cuantos más coloques uno a continuación del otro, más largas serán las pausas). También agregué una clave para los saltos de línea, ya que explorer los ignora si no lo hacés de esa manera. También la llamada a la función debe ser window.onload=inicio; (sin paréntesis ni parámetros, que igualmente no hacen falta si declarás a i como variable global). Probalo:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Gesnic se presenta</title>
<script>
var mensaje='Cuando se escribe en directo,_ al contrario de lo que pensaba,_ lo $que hay que destacar no son las puntos o las comas,_ sino las paradas que $hace el supuesto escritor mientras____ piensa, que puede venir en cualquier $momento, aquí__, aquí_, y no es plan de poner un punto.____ donde te $plazca._____ o cuando._ te de la gana.$',pausa=50,i=0,pausador='_',salto='$';
function inicio(){
var f=0;
var m=mensaje.split('');
var t=setInterval(
function(){
if(i>=m.length-1)clearInterval(t);
if(m[i]==salto)m[i]='<br />';
if(m[i]==pausador){m[i]='';f=1;}
document.getElementById('pp').innerHTML+=m[i];i++;
if (f == 1) {
clearInterval(t);
setTimeout("inicio()",500);
}
},pausa
);
}
window.onload=inicio;
</script>
</head>
<body>
<div id="pp"></div>
</body>
</html>