I've tried adding the SyncHeights as you suggested, but the rows still don't seem to line up.
The next column after the locked columns contains a combobox, could this be causing the problem?
Here is the code:
<ext:GridPanel ID="GridPanel1" runat="server" Height="400" Title="Candidate Details">
<Store>
<ext:Store DataSourceID="odsCandidates" runat="server" ID="ctl51">
<Reader>
<ext:JsonReader IDProperty="ID_NUMBER">
<Fields>
<ext:RecordField Name="CANDIDATE_NO" />
<ext:RecordField Name="UCI_NO" />
<ext:RecordField Name="LEARNER" />
<ext:RecordField Name="DATE_OF_BIRTH" Type="Date" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<Plugins>
<ext:EditableGrid runat="server" />
</Plugins>
<ColumnModel runat="server" ID="ctl52">
<Columns>
<ext:Column ColumnID="colCG" Header="C & G No" DataIndex="CANDIDATE_NO" Locked="true" Wrap="true" />
<ext:Column ColumnID="colUCI" Header="UCI No" DataIndex="UCI_NO" Locked="true" />
<ext:Column ColumnID="colLearner" Header="Candidate Name" DataIndex="LEARNER" Locked="true" Width="200px" />
<ext:DateColumn DataIndex="DATE_OF_BIRTH" ColumnID="colDOB" Header="Date Of Birth" Locked="true" Format="dd-MM-yyyy" Align="Center" Width="85px" />
<ext:Column DataIndex="Exclude" ColumnID="colExc" Header="Exclude" Locked="true" Align="Center" Width="70px">
<Editor>
<ext:Checkbox ItemID="chkExclude" runat="server" />
</Editor>
</ext:Column>
<ext:Column DataIndex="Time" ColumnID="colTime" Header="Extra Time">
<Editor>
<ext:ComboBox ID="ddlTime" runat="server">
<Items>
<ext:ListItem Text="0%" Value="0" />
<ext:ListItem Text="5%" Value="5" />
<ext:ListItem Text="10%" Value="10" />
<ext:ListItem Text="15%" Value="15" />
<ext:ListItem Text="20%" Value="20" />
<ext:ListItem Text="25%" Value="25" />
<ext:ListItem Text="50%" Value="50" />
<ext:ListItem Text="100%" Value="100" />
</Items>
</ext:ComboBox>
</Editor>
</ext:Column>
<ext:Column DataIndex="Reader" ColumnID="colRead" Header="Reader" Align="Center" Width="70px">
<Editor>
<ext:Checkbox ID="chkReader" runat="server" />
</Editor>
</ext:Column>
<ext:Column DataIndex="Scribe" ColumnID="colScribe" Header="Scribe" Align="Center" Width="70px">
<Editor>
<ext:Checkbox ID="chkScribe" runat="server" />
</Editor>
</ext:Column>
<ext:Column DataIndex="Restbreaks" ColumnID="colRest" Header="Rest Breaks" Align="Center" Width="70px">
<Editor>
<ext:Checkbox ID="chkRest" runat="server" />
</Editor>
</ext:Column>
<ext:Column DataIndex="ReadAloud" ColumnID="colRead" Header="Read Aloud" Align="Center" Width="70px">
<Editor>
<ext:Checkbox ID="chkRead" runat="server" />
</Editor>
</ext:Column>
<ext:Column DataIndex="Prompter" ColumnID="colPrompter" Header="Prompter" Align="Center" Width="70px">
<Editor>
<ext:Checkbox ID="chkPrompter" runat="server" />
</Editor>
</ext:Column>
<ext:Column DataIndex="Overlay" ColumnID="colOverlay" Header="Overlay" Align="Center" Width="70px">
<Editor>
<ext:Checkbox ID="chkOverlay" runat="server" />
</Editor>
</ext:Column>
<ext:Column DataIndex="Colour" ColumnID="colColour" Header="Overlay Colour">
<Editor>
<ext:TextField ID="txtColour" runat="server" />
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel SingleSelect="true" runat="server" ID="ctl50" />
</SelectionModel>
<BottomBar>
<ext:PagingToolbar runat="server" PageSize="10" />
</BottomBar>
<View>
<ext:LockingGridView runat="server" ID="ctl49" SyncHeights="True">
<Templates>
<Header Visible="False" runat="server" ID="ctl48" />
</Templates>
</ext:LockingGridView>
</View>
<Buttons>
<ext:Button ID="btnSubmit" runat="server" Text="Submit">
<DirectEvents>
<Click OnEvent="SubmitSelection">
<ExtraParams>
<ext:Parameter Name="Values" Value="Ext.encode(#{GridPanel1}.getRowsValues({selectedOnly : true}))" Mode="Raw" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
</Buttons>
</ext:GridPanel>