If it's OldFolder to new-folder those are entirely different URLs with no way to automate it. Unless you have a lot of names in the form "blahblahfolder" with a recurring element; then there might be a pattern.
1. What rewrite rule I have to use exactly? (Apache server)
:: insert boilerplate about Why We Make You Do It Yourself ::
Show us what you've got and we'll help you with details. The big question is just how many pages are involved, and how many permutations of basic patterns such as lowline vs. hyphen. This will determine whether it's better to keep it all in htaccess, or to rewrite everything to a php page that does the lookups and transformations and then issues a 301 of its own.
2. For how long rewrites have to stay on htaccess?
Do you mean, specifically, 301 redirects? Forever. The day after you delete a redirect on the grounds that nobody has asked for the old URL in many months, some major search engine will stop by for its annual Broad Sweep.
3. How long will take search engines to update new pages?
That depends entirely on your site. Here on WebmasterWorld, new posts are crawled and indexed faster than the page can refresh. On sites like mine, it might take a week for them even to notice a changed URL, and then further days for the indexing to disseminate through all of google's datacenters. If the search engine randomly discovers a number of changed URLs, it might end up re-crawling the whole site to see what's up. (It might also ask for some made-up URLs to check for "soft 404s"; generally this is nothing to worry about.)
4. What would happen with site rankings?
Don't look at me ;)
5. Should I change file extensions from .htm to .html, too?
I have never heard anyone, anywhere, say that one is preferable to the other. If you simply like "html" better, then you might as well use it in the new URLs since you're changing anyway. But otherwise leave things as they are.