Firstly Thank You for including the code snippet to create the sample data. Unfortunately I haven't been able to test this fully as sqlfiddle is down and I no longer have Oracle on this PC :(
However... you will need to
PIVOT[
^] the table to transpose the rows to columns - further
pivot examples[
^]
The first problem I see here though is that you have multiple rows in your expected results for ItemValue - usually with PIVOT you would use a function such as MIN, MAX, SUM, COUNT - If this is genuinely what you are after you might be able to achieve it with UNPIVOT (same links as above)
You
could achieve it with this sql
select ItemValue, case when ItemValue = 'A' then Cost ELSE null END,
case when ItemValue = 'B' then Cost ELSE null END,
case when ItemValue = 'C' then Cost ELSE null END,
case when ItemValue = 'D' then Cost ELSE null END
from Item
order by ItemValue
but this is not extendable and I very much doubt that it is what you need.