i think the first thing i would try is this
Code:
//change this line 
int rows = dsCreditors.Tables[0].Rows.Count;  
//to this line
DropDownList ddl = gridAdjustments.Items[i].FindControl("ddlStatus") as DropDownList;
int rows = ddl.Rows.Count
because your setting the length as the # of rows returned from your data table not the actual drop down list control. Its probably got one extra row returned and thats why your getting that out of bounds error.

hth,
mcm