Hum, consider just adding a bootstrap class to the table.
So, the gv by default looks like this:
I have borderstyle = none.
So, this markup:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID" width="40%" BorderStyle="None"
OnRowDataBound="GridView1_RowDataBound" >
<Columns>
<asp:BoundField DataField="FirstName" HeaderText="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="LastName" />
And we get this:

however, if we add the plain jane bootstrap class(s) to above
eg:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID" width="40%" BorderStyle="None"
CssClass="table"
OnRowDataBound="GridView1_RowDataBound" >
<Columns>
We now get this:

Now, the above might not pass your "checker", but then again, EVERY table on the web that uses hte basic bootstrap table class would also then fail, would it not? And if a simple bootstrap table don't pass that checker, then perhaps some "wiggle" room exists here in regards to your compliance.
And, I suppose you could drop in this style sheet right above the GV.
This:
<style>
table {
border-collapse: collapse;
border: none;
}
tr {
border-top: 1px solid black;
}
tr:first-child {
border: none !important;
}
th {
border: none !important;
}
td {
border: none !important;
}
</style>
And we now see this:

so, if a plain jane "standard" bootstrap "default" table does not suffice, then above would remove the outside border, the vertical lines.
I don't have a "compliance" checker, but I suspect this issue will in the future come along and I'll have to deal with this issue also.
However, do keep in mind that a gridview quite much just generates standard table, tr, th tags, and they can be quite much formatted how you want - much like any html.