If you add Separator Template in DataList it will repeate after each item. So its not possible to show Hr only after 4th item.
<asp:DataList ID="dlCustomers" runat="server" RepeatLayout="Table" RepeatColumns="4"
BorderStyle="Solid">
<ItemTemplate>
<b>Customer Name:</b>
<asp:Label ID="Label1" CssClass="ContactName" runat="server" Text='<%# Eval("ContactName") %>'></asp:Label><br />
<b>Customer ID:</b>
<asp:Label ID="Label2" CssClass="CustomerID" runat="server" Text='<%# Eval("CustomerID") %>'></asp:Label>
<b>City:</b>
<asp:Label ID="Label3" runat="server" CssClass="City" Text='<%# Eval("City") %>'></asp:Label>
</ItemTemplate>
<SeparatorTemplate>
<hr style="width:100px;" />
</SeparatorTemplate>
</asp:DataList>
Thank You.