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.