Yes, any IIR filter that has an impulse response that ultimately decays to insignificant values can be implemented as an FIR filter: this is the extreme case where all (non-zero) poles have been eliminated. This is because the coefficients of an FIR filter is the impulse response for the filter, so we can get the zeros by describing the sampled impulse response as the numerator of the transfer function and factoring that into its zeros.
The conversion can be done by just resampling a high precision impulse response from the IIR to a lower rate. The lowest rate can be determined from the frequency response with regards to avoiding frequency domain aliasing. My approach would be to use a simple zero phase filter (‘filtfilt’ in Matlab and Python) to limit the bandwidth of the impulse response to something that is greater than the bandwidth of interest and then resample the filtered response to at least 2x greater than that bandwidth). If the sampling rate is already minimized then we can only reduce the number of zeros needed if it’s total time duration far exceeds the actual impulse response above a limit of significance.
To be clear, all systems ultimately have the same number of poles and zeros it’s just some of them may be at infinity so not visible on a plot we may make; with a causal FIR system all the poles are at the origin and are referred to as “trivial”.
If we wanted to trade a smaller group of poles with zeros out of a higher order filter with many poles, we can do the following procedure:
Factor the filter into the cascade of two filters, with the poles to be exchanged as a separate filter cascaded with the poles to keep.
Use the process above to convert those poles to zeros. Note that there will typically be many more zeros to achieve a similar impulse response as can be achieved with the poles. Consider how FIR filters typically are of much higher order than IIR implementations to achieve a given frequency response.