Is there a way when I can track on content downloads in Marketo - Like - What asset / who downloaded / when? also a campaign and referring source attribution of content downloads.
If your channels and tags are appropriately setup, you can see overall numbers of content downloads based on asset or asset type with a program performance report.
To answer the WHO part of the question will always be smart lists. If you are using a form per asset, your smart list will be filled out form IS form.name. If you are using global forms it will be filled out form IS ANY with webpage constraint of www.yourlandingpageurlhere.com.
There are additional resources on the community about how to track referring source before a lead lands on your site.
Here are some:
I agree with Darrell as far as creating content tags and using those in your program setup for reporting/tracking. Another thing that may be helpful in long term reporting is if you have a content model that you're using as part of an ongoing nurture program, you could create custom fields for those CO's and date stamp when someone fills out a specific piece of content. You could then pull a Smart List of any of your content fields created that are not empty to see who is filing out content and when in addition to the content tags!