There is no possibility in SharePoint 2010 to setup Columns and View permission for Lists or Document Libraries. by Microsoft, that there will be a big performance issue if they create something similar to this.
There are free Tool from CodePlex to get this.
http://spcolumnpermission.codeplex.com/
If not allowed, then you have to write your own solutions.
Column Security Level in SharePoint
Another workaround,
there are some existing and new options that will achieve the same results. In the end, you are wanting to keep users from viewing or changing columns... you can:
- Use the new capabilities of InfoPath to customize the web forms
(.aspx): for read-only or hidden
- Use the new capabilities that give lists RELATIONAL capability to do
lookups against a SEPARATE LIST to which the user has only READ
permission. So the data "looks" like it's in one place, but is
actually in two separate lists
- Use Access Web Services to manage the forms. AWS can use Data Macros
to enable/disable/hide controls based on user / group info
Source: https://www.nothingbutsharepoint.com/sites/devwiki/SP2010Dev/Pages/Site%20Column%20level%20security.aspx