Civicase activity table default options
Point 1 is probably not the part, that just reads from the array $rows. I think you have to go to CRM/Case/Form/CaseView.tpl and change the 10 in here to 100:

  oTable = cj('#activities-selector').dataTable({
    "bFilter"    : false,
    "bAutoWidth" : false,
    "aaSorting"  : [],
    "aoColumns"  : columns,
    "bProcessing": true,
    "bJQueryUI": true,
    "asStripClasses" : [ "odd-row", "even-row" ],
    "sPaginationType": "full_numbers",
    "sDom"       : '&lt;"crm-datatable-pager-top"lfp&gt;rt&lt;"crm-datatable-pager-bottom"ip&gt;',
    "bServerSide": true,
    "sAjaxSource": sourceUrl,
    "iDisplayLength": 10,
    "fnDrawCallback": function() { setSelectorClass(); },
    "fnServerData": function ( sSource, aoData, fnCallback ) {

      if ( filterSearch ) {
        var activity_deleted = 0;
        if ( cj("#activity_deleted:checked").val() == 1 ) {
          activity_deleted = 1;
        }
        aoData.push(
          {name:'status_id', value: cj("select#status_id").val()},
          {name:'activity_type_id', value: cj("select#activity_type_filter_id").val()},
          {name:'activity_date_low', value: cj("#activity_date_low").val()},
          {name:'activity_date_high', value: cj("#activity_date_high").val() },
          {name:'activity_deleted', value: activity_deleted }
        );
      }
      cj.ajax( {
        "dataType": 'json',
        "type": "POST",
        "url": sSource,
        "data": aoData,
        "success": fnCallback
      } );


But try! And it is best to modify this in an extension. The same for number two, identify the button and hiding it in a specific template which you add with a combination of buildForm or pageRun hook and CRM_Core_Region like so:

CRM_Core_Region::instance('page-body')-&gt;add(array(
    'template' =&gt; 'yourtemplate.tpl'