Can not unset rows of a view programmatically
It should work on template.php too. Module implementation does not look mandatory here.
I have noticed a few issues in the code sample that you have pasted.


There is a typo. It should be $view not $views.
Instead of 

for($i = 0 ; $i &lt; sizeof($view-&gt;result) ; $i++){
}


Do

$sizeof_result = sizeof($view-&gt;result);
for($i = 0 ; $i &lt; $sizeof_result ; $i++)



The following code works for me:

function MYTHEME_views_pre_render(&amp;$view){
  if($view-&gt;name == 'MY_VIEW'){
    $sizeof_result = sizeof($view-&gt;result);
    for($i = 0 ; $i &lt; $sizeof_result ; $i++){
      //IF Condition
        unset($view-&gt;result[$i]);
    } 
  }
}


The reason for using variable $sizeof_result instead of sizeof($view-&gt;result) in for loop is:

For each execution of the loop, the value of sizeof($view->result) changes(decreases by 1). Due to this, the for loops does not work as expected.