BCP accepts an option -b
to control the batch size. However, it only has effect when you load data, not when you export. More precisely, -b controls how often data is committed.
On output, BCP simply prints a progress message for every 1000 rows. If the speed decreases as the query runs, this is more likely to reflect the performance of the query itself. It's difficult to explain without seeing the query, but take a simple example. Say that you query is
SELECT * FROM VeryBigTable WHERE UserName = 'Fred'
There is no index here, so the table is scanned. Say also that the table is indexed on a monotonically growing id. In the beginning, when there were not many users, Fred was the user on many rows, so in the beginning of the scan, BCP finds many rows. However, as the business expanded, more users started to added rows. Also, Fred moved to a different role, so now he is only creating a row every now and then. Therefore, it will seem as the export is slowing down. But that is only because it is not finding as many rows as it did in the beginning.
This was just an example, and the explanation for your case may be different.