mira, voy de salida, pero te arme algo, espero que te pueda servir, suponiendo que el datagrid se llame dg:

Código :

var i:Number = new Number(0);
with(dg) {
   addColumn("Nombre"); //Le agrego una columna
   addColumn("Cancion"); //Le agrego otra columna
   addItem({Nombre: "Rola 1", Cancion: "rola1.mp3"}); //unos cuantos Items
   addItem({Nombre: "Rola 2", Cancion: "rola2.mp3"});
   addItem({Nombre: "Rola 3", Cancion: "rola3.mp3"});
   addItem({Nombre: "Rola 4", Cancion: "rola4.mp3"});
   addItem({Nombre: "Rola 5", Cancion: "rola5.mp3"});
}
var dg_change:Object = new Object();
dg_change.change = function(obj:Object):Void {
   i = obj.target.selectedIndex;
}
var sig_click:Object = new Object();
sig_click.click = function(obj:Object):Void {
   if(dg.selectedIndex == undefined) {
      i = 0;
      dg.selectedIndex = i;
   } else {
      i++;
      dg.selectedIndex = i;
   }
   trace(dg.getItemAt(i).Nombre);
}
sig_btn.addEventListener("click", sig_click);
var ant_click:Object = new Object();
ant_click.click = function(obj:Object):Void {
   if(dg.selectedIndex == undefined) {
      i = 0;
      dg.selectedIndex = i;
   } else {
      i--;
      dg.selectedIndex = i;
   }
   trace(dg.getItemAt(i).Nombre);
}
ant_btn.addEventListener("click", ant_click);


es solo cuestion de jugar con el selectedIndex y despues ya solo le meterias un

Código :

dg.getItemAt(i).NombreColumna


también haria falta la validación para saber cuando es el primer elemento y cuando el ultimo y dejar de recorrerlo.

Saludos! ^^