Note- The ‘timeout’ means if test case is taking longer than a specified number of milliseconds to finish, TestNG will abort it and market it as failed.
‘timeout’ can also be used for performance testing, to ensure the method is returned within a reasonable time.

ex-
import org.testng.annotations.Test;

public class TimeOut {
@Test(timeOut=3000) //time is in milliseconds, here this test case will execute for max 3sec if it will not complete in 3sec then it will be failed.
public void thisTestShouldPass() throws InterruptedException{
System.out.println(“This test case should pass”);
Thread.sleep(1000); //wait for 1 sec
}

@Test(timeOut=5000)  //here this test case will execute for max 5sec if it will not complete in 5sec then it will be failed.
public void thisTestShouldFail(){
System.out.println(“This test case should fail”);
while(true); //this loop is never going to end as condition is always true
}
}

 

Source: http://selenium-makeiteasy.blogspot.com