Elektro, ya te ha respondido...
Imagino que estás empezando y por eso has saltado por encima de las recomendaciones que te daba Elektro, al no entender de que te hablaba... Voy a suponer que es así.
------------------------------------
Tu has colocado una función que requiere que se le pasen 4 parámetros, pero sólo le envías 3 desde la llamada. el 4º parámetro (el 3º según el orden que ocupa en la función) lo obtienes desde dentro de la función... algo que rompe la lógica de las funciones, pero que admeás te genera el error al invocarla (no porque esto dentro, si no porque reclamas un parámetro que no se recibe desde fuera...
Si la función recibe dos arrays, un texto y un entero, esa función debe servir para cualesquiera arrays se reciban, por tanto la petición del texto por consola, la inutiliza para propósitos generales y la hace específica de ese único caso. y a tal efecto, entonces ya porqué no hacerlo más 'íntimo' y 'particular' y obtener el resto de parámetros también desde ahí...  
 
 
Esta línea debería estar antes de invocar la función. Para que al invocar la función, 'nom' ya tenga el valor que usará la función
nom = Console.ReadLine().ToUpper().Trim();
Luego tus bucles son extraños... e inenecesarios ¿por qué pones dos bucles uno dentro de otro?. Cuando usas dos bucles de pongamos 100 ciclos cada uno, al final se ejecutan 100x100 ciclos.
Buscar en un array de 100 elementos, solo requiere un máximo 100 ciclos, nunca 10.000 (100x100)
El pseudocódigo de tu función debería ser similar a esto:
NombreBuscado = Consola.LeerEntradaUser("blablabla")
buleano = Funcion Eliminar (ArrayEntero Lista, ArrayString Nombre, String NombreBuscado, Entero Tope)
     Entero n=-1
     // buscar si existe: Nombrebuscado en la lista
     Bucle para k desde 0 hasta array.items-1
          Si Nombre(k) = NombreBuscado
               n = k
               Salir de este bucle //para continuar en el siguiente
          Fin si
     Siguiente
     // Si Existe, eliminar y bajar todos los elementos encima de él
     Si n >= 0 luego
          Bucle para k desde n hasta Lista.Items-2 // ojo -2, por si se hallara en el último puesto
               Lista(k) = Lista(k+1)
               Nombre(k) = nombre(k+1) 
          Siguiente
          // Borramos el último elemento (no es imprescindible).
          Lista(k) = ""
          Nombre(k)= ""
          //tope -= 1 Tope parece ser el punto final hasta el cual buscar, pero.. (comentado más abajo)
          return TRUE
     Fin si
Fin funcionComo te decía el propósito del parámetro "Tope" parece ser el punto final hasta el cual buscar, pero si es un array, tras eliminar un item en un punto que no sea el final, exige bajar todos los que tiene encima una posición (hasta el final de la lista)...
Salvo que pretendas insertar uno en determinada posición, en cuyo caso crea una función remplazar, con la particularidad que localiza y borra un elemento y si lo encuentra, en el índice marcado como tope inserta el remplazo.
NombreBuscado = Consola.LeerEntradaUser("blablabla")
NombreRemplazo = Consola.LeerEntradaUser("blablabla")
buleano = Funcion Remplazar (ArrayEntero Lista, ArrayString Nombre, string NombreBuscado, String Nombreremplazo, entero TopeRemplazo)
     entero n=-1
     // buscar si existe: Nombrebuscado en la lista
     Bucle para k desde 0 hasta TopeRemplazo
          Si Nombre(k) = NombreBuscado
               n = k
               Salir de este bucle //para continuar en el siguiente
          Fin si
     Siguiente
     // Si Existe, eliminar y bajar todos los elementos encima de él
     Si n >= 0 luego
          Bucle para k desde n hasta TopeRemplazo-1 // si (n) se haya en el último puesto, no se ejecuta el bucle.
               Lista(k) = Lista(k+1)
               Nombre(k) = nombre(k+1) 
          Siguiente
          // el remplazo se coloca en el TopeRemplazo (último elemento donde se permitió buscar).
          //Lista(k) = "" <---- no queda claro que va aquí *
          Nombre(k)= NombreRemplazo
          return TRUE  //señala que el ítem localizado en 'n' fue remplazdo en 'ToopeRemplazo'
     Fin si
Fin funcionNota:* Aún así, no me queda claro el propósito del array 'Lista', si tienen valores precisos asignados a cada nombre (algo normal), entonces la función debería incluir  un parámetro más para remplazar en la misma posición y asnignarlo donde he puesto el comentario:   <---- no queda claro que va aquí *
Finalmente aclararte que incluso así, esa función deberían ser dos funciones... para 
generar un código más eficiente:
// Busca un elemento Si existe devuelve el índice donde se localiza, si no , devuelve -1
Entero = Funcion Buscar(ArrayString Nombre, String NombreBuscado)
    Bucle para K desde 0 hasta Nombre.Items -1
        Si Nombre(k) = NombreBuscado luego Devolver K  //y salir de la función.
    Siguiente
    Devolver -1 //No encontrado
Fin Funcion
// Elimina un ítem del array (si existe dicho índice en el array).
Buleano = Funcion Eliminar(ArrayEntero Lista, ArrayString Nombre, Entero Indice )
     Si Indice < Lista.Items entonces
         Bucle para k desde Indice hasta Nombre.Items -1
             Nombre(k) = Nombre(k + 1)
             Lista(k) = Lista(k + 1)
         Fin bucle
         Nombre(k) = ""
         Lista(k) = 0 
         Devolver TRUE
     Fin si
Fin Funcion
// Remplaza un ítem del array (si existe dicho índice en el array).
Buleano = Funcion Remplazar(ArrayEntero Lista, ArrayString Nombre, Entero Indice, String Remplazo, entero Valor )
     Si Indice < Lista.Items entonces
         Nombre(Indice) = Remplazo
         Lista(Indice) = Valor
       
         Devolver TRUE
     Fin si
Fin Funcion
Igualmente puedes hacer funciones más específicas de remplazo.
En cualquier caso, siempre que puedas separa la tareas, en este caso en dos funciones: 'Buscar' y luego la acción adicional, resulta más útil... que hacer bastante código en una sola función que "busca y remplaza", o "busca y elimina".
-------------------------------------------
También te decía Elektro, que cuando escribas código si pertenece a un lenguaje 'conocido' (específico), usa las etiqeutas GESHI (aparece en el editor, arriba a la derecha), seleccióna el trozo de código y marca el lenguaje al que pertenece en ese combo desplegable, así queda bien coloreado y las líneas numeradas y mucho más nítido...