Yes, as long as you're using a Marketo form, you should be able to do this.
When you create a Hidden Field, select it and then go into "field value", from there change "get dynamic value" to "Get value from URL parameter" and select the parameter name (this can be anything you want).
Then, add the parameter to your non-Marketo landing page. Typically, if you use a Marketo landing page, you can use the URL Builder option to build out the URL parameters, but since you're doing this on a non-Marketo LP you will have to manually do this part. Hope that helps.
For example, if your parameter name was "campaign".
Your URL would be http://www.example.com/test.html?campaign=first_campaign
Once someone arives to that page and fills out that form with the hidden field, "first_campaign" will automatically be populated into your campaign field in Marketo and/or whatever other CRM you might be using.
Also, keep in mind, you can capture multiple parameters, currently we're tracking about 2 for our latest campaign.