Yes, it's possible using custom widget and quite simple.
you'll need to write your widget in javascript lets say with a name: "my_widget" 
under static/src/js/ folder in your module add javascript file with a custom widget (say static/src/js/mywidget.js):
 openerp.your_module_name = function (instance) {
    instance.web.list.columns.add('field.your_widget_name', 'instance.your_module_name.your_widget_name');
    instance.your_module_name.your_widget_name = instance.web.list.Column.extend({
        _format: function (row_data, options) {
            res = this._super.apply(this, arguments);
            var amount = parseFloat(res);
            if (amount < 0){
                return "<font color='#ff0000'>"+(-amount)+"</font>";
            }
            return res
        }
    });
    //
    //here you can add more widgets if you need, as above...
    //
};
the above example widget can be used in a list view for field of type float and it displays a content in red if value < 0, also "hides" '-' sign. adapt it to your requirements.
don't forget to add javascript file to your module:
in v7.0 through __openerp__.py manifest:
'js':['static/src/js/mywidget.js'], 
in v8.0 through XML file:
  <template id="assets_backend" name="your_module_name assets" inherit_id="web.assets_backend">
    <xpath expr="." position="inside">
      <script type="text/javascript" src="/your_module_name/static/src/js/mywidget.js"></script>
    </xpath>
  </template>
then in your tree view, use this widget for the column you need to apply your rules to:
<tree >
    ....
    <field name="field_name" widget="my_widget"/>
    ....
</tree>
do not forget to add 'web' as dependency in __openerp__.py:
'depends': ['web',....]
that's it.