¿Porqué haces un select * antes de borrar? Sobrecargas la BD sin sentido. A ver que te parece esta forma:
<%
' si existe la variable GET "num" es para borrar el registro
if request.QueryString("num") <> "" then
'BORRO LA VIVIENDA
sentencia="delete from TIPOVIVIENDA where id_TIPO_VIVIENDA='"&request.QueryString("num")&"'"
conn.execute(sentencia)
' Si todo ha ido bien, el registro se ha borrado
end if
' No hagas redirect. Simplemente lee la tabla de nuevo y haz el listado
ConsultaVivienda="select * from TIPOVIVIENDA"
' Si en vez de * usas los nombres de los campo mejor que mejor

%>
Como ves no recargo la página de nuevo. Realizo las consultas de accion antes de las de seleccion. Asi me aseguro que todas las transacciones han sido hechas antes de bloquear la tabla para leer. Luego, simplemente, dejo que la página se dibuje tranquilamente
Un saludo