How can I access list that is located at the root site from a sub site?
Using C#, dead simple:
For security reasons (and technical ones as well) SharePoint does not support using lists outside of the current site as a lookup list.
You could do one of the following:
1) Create a template of the main list with data and use that to replicate the list everywhere you need it
2) Use an InfoPath form. The lookup would happen within the InfoPath form, not in the SharePoint column itself. InfoPath can use list data from other SharePoint sites in its data connections.