The correct pullup resistance for the I2C bus depends on the total capacitance on the bus
and the frequency you want to operate the bus at.
The formula from the ATmega168 datasheet (which I believe comes from the official I2C spec) is --
$$\text{Freq}<100\text{kHz} \implies R_{\text{min}}=\frac{V_{cc}-0.4\text{V}}{3\text{mA}}, R_{\text{max}}=\frac{1000\text{ns}}{C_{\text{bus}}}$$
$$\text{Freq}>100\text{kHz} \implies R_{\text{min}}=\frac{V_{cc}-0.4\text{V}}{3\text{mA}}, R_{\text{max}}=\frac{300\text{ns}}{C_{\text{bus}}}$$
The Microchip 24LC256 specifies a maximum pin capacitance of 10pF (which is fairly
typical). Count up the number of devices you have in parallel on the bus and
use the formula above to calculate a range of values that will work.
If you are powering off of batteries I would use values that are at the high
end of the range. If there are no power limits on the power source or
power dissipation issues in the ICs I would use values on the lower end
of the range.
I sell some kits with an I2C RTC (DS1337). I include 4K7 resistors in the kit which
seems like a reasonable compromise for most users.
The temperature coefficient specification ostensibly provides a limit for the change in the resistance of a resistor from its nominal value at temperature \$T_0\$ to another temperature T. In fact it's usually defined using a box method at temperature extremes and does not really guarantee the slope of the temperature-resistance curve as you might assume.
Ideally, a maximum temperature coefficient of, say, 10ppm/°C would mean that if our 1.00K resistor measures 1.0015K at 25°C and the temperature changes to 35°C then the value should somewhere between:
\$1.0015K + 1.0015K (35°C - 25°C) 10^6 \cdot 10ppm/°C \$
and
\$1.0015K - 1.0015K (35°C - 25°C) 10^6 \cdot 10ppm/°C\$
Or 1001.5\$\Omega\$ +/- 0.1005\$\Omega\$
It doesn't matter why the temperature changes- ambient, self heating, nearby components, or some combination.
If you are trying to measure the actual temperature coefficient of a resistor, you can measure the resistance at two widely separated temperatures, using low enough current that self-heating is minimal (note that it cancels out to a first order if you allow it to settle out- also pulsed current can be used and the measurement made before the temperature changes much) and calculate the tempco as:
Temperature coefficient = \$\frac{R_X - R_0}{R_0(T_X-T_0)}\cdot 10^6 ppm/°C\$
If the tempco is large you might want to use the average resistance rather than \$R_0\$, but it shouldn't matter much in most cases.
Edit: Regarding the situation you mention - 0.2% change for a change in power dissipation of about 100mW.. you need a better resistor and probably a larger one that won't heat as much for a given dissipation.
Consider a 1206 249 ohm Susumu resistor. P/N: RG3216P-2490-B-T1. Tempco is +/-25ppm/°C, it will increase by 15-30°C at 20mA depending on layout (see the link). That should represent a change in resistance of about 375-750ppm or maybe 3-5x better than you are measuring. If you need even higher accuracy, you could use a bigger resistor, several smaller ones distributed with copper around, or use a smaller value resistor and amplify the signal so it doesn't get as hot.
You could also use a Z-foil style resistor such as Y1630250R000T9R that has only 0.2ppm/K tempco, but they are pretty expensive (>$10 each).
Best Answer
I took some quick measurements, I made a divider using resistors with 50ppm temp coef. and the divider temp coef. The worse error for a divider with equal resistors would be TC/2 which would be 25ppm, the value I measured was near 10ppm so approximately 2.5 times improvement in temp coef. for my case. I only took one measurement and I know that's not statistically right but that's enough answer for me.