Well you can't technically override the standard list view, but you can still accomplish what you are asking:
- Create your Visualforce page you'd like to override the list view with.
- Create a Visualforce Tab and name it the same thing as the object.
- Add the newly created Visualforce Tab to your console app.
You will need to ensure links are opened properly from your visualforce page. To have a little more control, see the Salesforce Console Integration Toolkit.
To answer your second question, a StandardSetController would work nicely. To understand how custom console components work with data, refer to the same document. Make use of Visualforce components if you will need similar functionality across a number of objects.