Edit in JSFiddle

var ret = '<table class="table table-striped">'
for(i=1;i<=30;i++){
    ret += '<tr>';
    ret += '<td><label class="radio" for="idradio_y'+i+'" name="xolb_form_radio'+i+'"><input type="radio" name="form_radio['+i+']" id="idradio_y'+i+'" value="y">Yes</label></td>';
    ret += '<td><label class="radio" for="idradio_n'+i+'" name="xolb_form_radio'+i+'"><input type="radio" name="form_radio['+i+']" id="idradio_n'+i+'" value="n">No</label></td>';
    ret += '</tr>';
}
ret += '</table>';
$('#output').html(ret)
var index = 0; 
var shift_down = false;
var radio_group = {
      'y':$(':radio[id^="idradio_y"]'),
      'n':$(':radio[id^="idradio_n"]')
    }
radio_group.y.prop('checked',true);
$(':radio').bind('change',function(){
    var this_index = radio_group[this.value].index(this);  
    if( shift_down )
    {
        var start = Math.min(index,this_index);
        var end   = Math.max(index,this_index);
        radio_group[this.value].slice(start,end).prop('checked',true);
    }
    index = this_index
})
$(document).bind('keydown',function(e){
    if(e.which == 16 ){
        shift_down = true;
        $('#output tr').eq(index).addClass('info')
    }
}).bind('keyup',function(e){
    if(e.which == 16 ){
        shift_down = false;
        $('#output tr').removeClass('info')
    }
}).bind('selectstart',function(){return false})
<h1>Radio Shift Select</h1>
<div id="output"></div>

              

External resources loaded into this fiddle: