My form has about 100 fields, I don't think I need to create a list with 100 items. I think I should create a list and add only those items that holding critical information, the rest of the items don't have to be added to the list, am I right?
It all depends on what you need to do with the data. The best and optimal way to handle data is through lists and list fields. You can rollup, search, filter, cross reference, lookup, report and chart on list data. Not putting data on the list but in the form is "Form Data" and is added xml to the item. It is possible for workflow to run of of this data, but you cannot report, search, filter this data easily from a users perspective.
I agree that 100 fields seems like too many columns for most lists. With Nintex Forms, there is no requirement to have all your controls bound to columns. As Andrew mentions above, we continue to store any unbound data with the list item but not accessible as a column. You'll just need to consider carefully what data you will want to be able to see in SharePoint's List Views and, as Andrew mentions, consider which pieces of data you are likely to use to drive workflow logic, reporting, searching etc.
Hope this is of help.
My experience has been that you can never not expose enough data. You can always limit the number of fields you are displaying in the views you present user, but if you need to promote it to the list later, or if someone follows you and needs to, it's going to be a "Thing".
It does beg to question, if you are not going to promote many of these fields to the list, do you really need them? Some brainstorming on what the form really needs versus trying to capture every eventuality might be in order. Generally the "Crawl, walk, run" approach is never a bad idea. Putting a 100 fields in front of the user every time they open a form might be a bit much, especially if 99% of the time many of those fields are going to be empty. Consider getting what you know for sure you will need in the form every time, and maybe put in some kind of "catch-all" field for your 1% scenarios.
Retrieving data ...