El enlace proporcionado por el compañero @
MCKSys Argentina es para VB.NET, no VB6. Si no te importa el lenguaje entonces yo te recomiendo hacerlo en VB.NET por su simplicidad, ya que en VB6 podría resultar una tarea muuuy tediosa de llevar a cabo, ya sea mediante las funciones de la Win32 API, o mimetizando una falsa CMD con los controles disponibles en VB6.
En .NET, puedes utilizar un user-control de terceros llamado
ConsoleControl:
Si vas a usarlo te advierto que los métodos asincrónicos
están bugueados, el autor no implementó un buen modelo de diseño de programación asincrónica, pero para cosas normalitas ese control te debería bastar, ahorrándote cualquier complicación adicional como desarrollar por ti mismo el algoritmo.
Saludos