But when i check/uncheck second row it disable or enable drowpdown in all the rows
Your code is doing that via foreach loop you wrote!
Remove foreach from the OnCheckChanged method. Instead use, something like:
CheckBox ck1 = (CheckBox)sender;
GridViewRow grow = (GridViewRow)ck1.NamingContainer;
DropDownList ddlR = (DropDownList)grow.Cells[3].FindControl("ddlReason");
if (ck1.Checked == true)
ddlR.Enabled = true;
else
ddlR.Enabled = false;