How to expose to users filter for changing views items limit for pagination? As in question, is this possible via UI or only custom form must be created?
I have done this manually.  I typically edit views-view.tpl.php file to build up a "items per page" list w/ links and tack on a perpage= GET argument.  You can do the same with a preprocess for the view, but I am spacing on what it is called.

I then implement a hook_views_pre_build:

function mymodule_views_pre_build (&amp;$view)
{
  if ($_GET["perpage"]) {
    $perpage = check_plain($_GET["perpage"]);

    if (is_numeric($perpage) &amp;&amp; (int) $perpage &gt; 1) {
      $view-&gt;pager["items_per_page"] = (int) $perpage;
    } else if ($perpage == "all") {
      $view-&gt;pager["use_pager"] = false;
      $view-&gt;pager["items_per_page"] = 0;
    }
  }
}


The last time I remember doing this was with Drupal 6 and Views 2, so you may need to adjust the hook for Views 3.