Not sure if this will actually help speed things up but....
You can create a "Fake" index in Access that tells Access which columns make
a Unique record in the linked table. The index is only used by Access is
completely unknown to the Server.
The following example creates an index on an ODBC linked table. The table's
remote database is unaware of and unaffected by the new index. The following
example won't work if you simply paste it into Microsoft Access; you first
need to create an ODBC linked table called OrderDetailsODBC.
(CREATE INDEX Statement in Help has some examples)
CREATE UNIQUE INDEX OrderID ON OrderDetailsODBC (OrderID);