Javascript

// add new widget called repeatHeaders
$.tablesorter.addWidget({
	// give the widget a id
	id: "repeatHeaders",
	// format is called when the on init and when a sorting has finished
	format: function(table) {
		// cache and collect all TH headers
		if(!this.headers) {
			var h = this.headers = []; 
			$("thead th",table).each(function() {
				h.push(
					"" + $(this).text() + ""
				);
				
			});
		}
		
		// remove appended headers by classname.
		$("tr.repated-header",table).remove();
		
		// loop all tr elements and insert a copy of the "headers"	
		for(var i=0; i < table.tBodies[0].rows.length; i++) {
			// insert a copy of the table head every 10th row
			if((i%5) == 4) {
				$("tbody tr:eq(" + i + ")",table).before(
					$("").html(this.headers.join(""))
				
				);	
			}
		}
	}
});

// call the tablesorter plugin and assign widgets with id "zebra" (Default widget in the core) and the newly created "repeatHeaders"
$("table").tablesorter({
	widgets: ['zebra','repeatHeaders']
});

Demo

Name Major Sex English Japanese Calculus Geometry
Name Major Sex English Japanese Calculus Geometry
Student01 Languages male 80 70 75 80
Student02 Mathematics male 90 88 100 90
Student03 Languages female 85 95 80 85
Student04 Languages male 60 55 100 100
Student05 Languages female 68 80 95 80
Student06 Mathematics male 100 99 100 90
Student07 Mathematics male 85 68 90 90
Student08 Languages male 100 90 90 85
Student09 Mathematics male 80 50 65 75
Student10 Languages male 85 100 100 90
Student11 Languages male 86 85 100 100
Student12 Mathematics female 100 75 70 85
Student13 Languages female 100 80 100 90
Student14 Languages female 50 45 55 90
Student15 Languages male 95 35 100 90
Student16 Languages female 100 50 30 70
Student17 Languages female 80 100 55 65
Student18 Mathematics male 30 49 55 75
Student19 Languages male 68 90 88 70
Student20 Mathematics male 40 45 40 80
Student21 Languages male 50 45 100 100
Student22 Mathematics male 100 99 100 90
Student23 Languages female 85 80 80 80