In this forum thread, there is a sample that shows an alternative method for searching the grid. The main reason that that the default implementation is slow is that it uses a method that triggers events (QueryCellInfo) to retrieve cell values.
http://www.syncfusion.com/Support/Forums/message.aspx?MessageID=19862
If you directly use such a technique, then you will have control of the loop and could check if the process should be cancelled.
Here is code similar to that used in the sample that avoid events. Using an indexer to retrieve grid[row, col].CellValue triggers events (like QueryCellInfo). You can avoid triggerring these events (which slow things down) by accessing the GridData directly.
GridStyleInfo style;
GridStyleInfoStore store = grid.Data[rowIndex, colIndex];
if (store != null)
style = new GridStyleInfo(store);
else
style = new GridStyleInfo();
object cellValue = style.CellValue;